1
- all : poetry
1
+ default : kevm-pyk
2
2
3
3
4
4
# Building
11
11
endif
12
12
13
13
KEVM_PYK_DIR := ./kevm-pyk
14
- POETRY := poetry -C $(KEVM_PYK_DIR )
15
- POETRY_RUN := $(POETRY ) run --
14
+ UV := uv --project $(KEVM_PYK_DIR )
15
+ UV_RUN := $(UV ) run --
16
16
17
-
18
- .PHONY : poetry-env download-json-fixtures
19
- poetry-env :
20
- $(POETRY ) env use --no-cache $(PYTHON_BIN )
21
-
22
- poetry : poetry-env
23
- $(POETRY ) install
24
-
25
- shell : poetry
26
- $(POETRY ) shell
27
-
28
- kevm-pyk : poetry-env
17
+ .PHONY : kevm-pyk
18
+ kevm-pyk :
29
19
$(MAKE ) -C $(KEVM_PYK_DIR )
30
20
31
21
@@ -37,10 +27,12 @@ test: test-integration test-conformance test-prove test-interactive
37
27
38
28
# Conformance Tests
39
29
40
- test-conformance : poetry
30
+ .PHONY : test-conformance
31
+ test-conformance :
41
32
$(MAKE ) -C kevm-pyk/ test-integration PYTEST_ARGS+=" -k test_conformance.py"
42
33
43
- conformance-failing-list : poetry
34
+ .PHONY : conformance-failing-list
35
+ conformance-failing-list :
44
36
cat /dev/null > tests/failing.llvm
45
37
- $(MAKE ) -C kevm-pyk/ test-integration PYTEST_ARGS+=" -k test_conformance.py --save-failing --maxfail=10000"
46
38
LC_ALL=en_US.UTF-8 sort -f -d -o tests/failing.llvm tests/failing.llvm
@@ -51,14 +43,15 @@ conformance-failing-list: poetry
51
43
sed -i ' 1{/^[[:space:]]*$$/d;}' tests/failing.llvm ; \
52
44
fi
53
45
46
+ .PHONY : download-json-fixtures
54
47
download-json-fixtures :
55
48
rm -rf tests/execution-spec-tests/fixtures
56
49
cd tests/execution-spec-tests && bash get_execution_spec_tests.sh
57
50
58
- test-fixtures : poetry download-json-fixtures
51
+ test-fixtures : download-json-fixtures
59
52
$(MAKE ) -C kevm-pyk/ test-integration PYTEST_ARGS+=" -k test_execution_spec_tests.py"
60
53
61
- fixtures-failing-list : poetry download-json-fixtures
54
+ fixtures-failing-list : download-json-fixtures
62
55
cat /dev/null > tests/execution-spec-tests/failing.llvm
63
56
- $(MAKE ) -C kevm-pyk/ test-integration PYTEST_ARGS+=" -k test_execution_spec_tests.py --save-failing --maxfail=10000"
64
57
LC_ALL=en_US.UTF-8 sort -f -d -o tests/execution-spec-tests/failing.llvm tests/execution-spec-tests/failing.llvm
@@ -69,49 +62,61 @@ fixtures-failing-list: poetry download-json-fixtures
69
62
sed -i ' 1{/^[[:space:]]*$$/d;}' tests/execution-spec-tests/failing.llvm ; \
70
63
fi
71
64
72
- test-vm : poetry
65
+ .PHONY : test-vm
66
+ test-vm :
73
67
$(MAKE ) -C kevm-pyk/ test-integration PYTEST_ARGS+=" -k test_vm"
74
68
75
- test-rest-vm : poetry
69
+ .PHONY : test-rest-vm
70
+ test-rest-vm :
76
71
$(MAKE ) -C kevm-pyk/ test-integration PYTEST_ARGS+=" -k test_rest_vm"
77
72
78
- test-bchain : poetry
73
+ .PHONY : test-bchain
74
+ test-bchain :
79
75
$(MAKE ) -C kevm-pyk/ test-integration PYTEST_ARGS+=" -k test_bchain"
80
76
81
- test-rest-bchain : poetry
77
+ .PHONY : test-rest-bchain
78
+ test-rest-bchain :
82
79
$(MAKE ) -C kevm-pyk/ test-integration PYTEST_ARGS+=" -k test_rest_bchain"
83
80
84
81
85
82
# Proof Tests
86
83
87
84
test-prove : test-prove-rules test-prove-functional test-prove-optimizations test-prove-dss
88
85
89
- test-prove-rules : poetry
86
+ .PHONY : test-prove-rules
87
+ test-prove-rules :
90
88
$(MAKE ) -C kevm-pyk/ test-integration PYTEST_ARGS+=" -k test_prove_rules"
91
89
92
- test-prove-functional : poetry
90
+ .PHONY : test-prove-functional
91
+ test-prove-functional :
93
92
$(MAKE ) -C kevm-pyk/ test-integration PYTEST_ARGS+=" -k test_prove_functional"
94
93
95
- test-prove-optimizations : poetry
94
+ .PHONY : test-prove-optimizations
95
+ test-prove-optimizations :
96
96
$(MAKE ) -C kevm-pyk/ test-integration PYTEST_ARGS+=" -k test_prove_optimizations"
97
97
98
- test-prove-summaries : poetry
98
+ .PHONY : test-prove-summaries
99
+ test-prove-summaries :
99
100
$(MAKE ) -C kevm-pyk/ test-integration PYTEST_ARGS+=" -k test_prove_summaries"
100
101
101
- test-prove-dss : poetry
102
+ .PHONY : test-prove-dss
103
+ test-prove-dss :
102
104
$(MAKE ) -C kevm-pyk/ test-integration PYTEST_ARGS+=" -k test_prove_dss"
103
105
104
106
105
107
# Integration Tests
106
108
107
- test-integration : poetry
108
- $(MAKE ) -C kevm-pyk/ test-integration PYTEST_ARGS+=' -k "(test_kast.py or test_run.py or test_solc_to_k.py)"'
109
+ .PHONY : test-integration
110
+ test-integration :
111
+ $(MAKE ) -C kevm-pyk/ test-integration PYTEST_ARGS+=' -k "(test_kast.py or test_run.py)"'
109
112
110
- profile : poetry
113
+ .PHONY : profile
114
+ profile :
111
115
$(MAKE ) -C kevm-pyk/ profile
112
116
find /tmp/pytest-of-$$(whoami ) /pytest-current/ -type f -name ' *.prof' | sort | xargs tail -n +1
113
117
114
- test-summarize : poetry
118
+ .PHONY : test-summarize
119
+ test-summarize :
115
120
$(MAKE ) -C kevm-pyk/ test-integration PYTEST_ARGS+=' -k "test_summarize"'
116
121
117
122
@@ -126,31 +131,13 @@ KPROVE_EXT = k
126
131
KEVM_OPTS ?=
127
132
KPROVE_OPTS ?=
128
133
129
-
130
- tests/specs/examples/% -bin-runtime.k : KEVM_OPTS += --verbose
131
-
132
- tests/specs/examples/erc20-spec/haskell/timestamp : tests/specs/examples/erc20-bin-runtime.k
133
- tests/specs/examples/erc20-bin-runtime.k : tests/specs/examples/ERC20.sol $(KEVM_LIB ) /$(haskell_kompiled ) poetry
134
- $(KEVM ) solc-to-k $< ERC20 $(KEVM_OPTS ) --verbose --definition $(KEVM_LIB ) /$(haskell_dir ) --main-module ERC20-VERIFICATION > $@
135
-
136
- tests/specs/examples/erc721-spec/haskell/timestamp : tests/specs/examples/erc721-bin-runtime.k
137
- tests/specs/examples/erc721-bin-runtime.k : tests/specs/examples/ERC721.sol $(KEVM_LIB ) /$(haskell_kompiled ) poetry
138
- $(KEVM ) solc-to-k $< ERC721 $(KEVM_OPTS ) --verbose --definition $(KEVM_LIB ) /$(haskell_dir ) --main-module ERC721-VERIFICATION > $@
139
-
140
- tests/specs/examples/storage-spec/haskell/timestamp : tests/specs/examples/storage-bin-runtime.k
141
- tests/specs/examples/storage-bin-runtime.k : tests/specs/examples/Storage.sol $(KEVM_LIB ) /$(haskell_kompiled ) poetry
142
- $(KEVM ) solc-to-k $< Storage $(KEVM_OPTS ) --verbose --definition $(KEVM_LIB ) /$(haskell_dir ) --main-module STORAGE-VERIFICATION > $@
143
-
144
- tests/specs/examples/empty-bin-runtime.k : tests/specs/examples/Empty.sol $(KEVM_LIB ) /$(haskell_kompiled ) poetry
145
- $(KEVM ) solc-to-k $< Empty $(KEVM_OPTS ) --verbose --definition $(KEVM_LIB ) /$(haskell_dir ) --main-module EMPTY-VERIFICATION > $@
146
-
147
134
.SECONDEXPANSION :
148
135
tests/specs/% .prove : tests/specs/% tests/specs/$$(firstword $$(subst /, ,$$* ) ) /$$(KPROVE_FILE ) /$(TEST_SYMBOLIC_BACKEND ) /timestamp
149
- $(POETRY_RUN ) kevm-pyk prove $< $(KEVM_OPTS ) $(KPROVE_OPTS ) \
136
+ $(UV_RUN ) kevm-pyk prove $< $(KEVM_OPTS ) $(KPROVE_OPTS ) \
150
137
--definition tests/specs/$(firstword $(subst /, ,$* ) ) /$(KPROVE_FILE ) /$(TEST_SYMBOLIC_BACKEND )
151
138
152
139
tests/specs/% /timestamp : tests/specs/$$(firstword $$(subst /, ,$$* ) ) /$$(KPROVE_FILE ) .$$(KPROVE_EXT )
153
- $(POETRY_RUN ) kevm-pyk kompile-spec \
140
+ $(UV_RUN ) kevm-pyk kompile-spec \
154
141
$< \
155
142
--target $(word 3, $(subst /, , $* ) ) \
156
143
--output-definition tests/specs/$(firstword $(subst /, ,$* ) ) /$(KPROVE_FILE ) /$(word 3, $(subst /, , $* ) ) \
@@ -181,9 +168,9 @@ tests/ethereum-tests/BlockchainTests/GeneralStateTests/VMTests/%: KEVM_MODE
181
168
tests/ethereum-tests/BlockchainTests/GeneralStateTests/VMTests/% : KEVM_SCHEDULE = DEFAULT
182
169
183
170
tests/% .run-interactive : tests/%
184
- $(POETRY_RUN ) kevm-pyk run $< $(KEVM_OPTS ) $(KRUN_OPTS ) --target $(TEST_CONCRETE_BACKEND ) \
185
- --mode $(KEVM_MODE ) --schedule $(KEVM_SCHEDULE ) --chainid $(KEVM_CHAINID ) \
186
- > tests/$* .$(TEST_CONCRETE_BACKEND ) -out \
171
+ $(UV_RUN ) kevm-pyk run $< $(KEVM_OPTS ) $(KRUN_OPTS ) --target $(TEST_CONCRETE_BACKEND ) \
172
+ --mode $(KEVM_MODE ) --schedule $(KEVM_SCHEDULE ) --chainid $(KEVM_CHAINID ) \
173
+ > tests/$* .$(TEST_CONCRETE_BACKEND ) -out \
187
174
|| $(CHECK ) tests/$* .$(TEST_CONCRETE_BACKEND ) -out tests/templates/output-success-$(TEST_CONCRETE_BACKEND ) .json
188
175
$(KEEP_OUTPUTS ) || rm -rf tests/$* .$(TEST_CONCRETE_BACKEND ) -out
189
176
0 commit comments