parallelize tests

Signed-off-by: xermicus <cyrill@parity.io>
This commit is contained in:
xermicus
2024-05-10 10:54:01 +02:00
parent 5f5ec1a539
commit 03a1918993
7 changed files with 190 additions and 169 deletions
Generated
+79 -102
View File
@@ -68,7 +68,7 @@ dependencies = [
"proc-macro-error", "proc-macro-error",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.60", "syn 2.0.61",
"syn-solidity", "syn-solidity",
"tiny-keccak", "tiny-keccak",
] ]
@@ -142,9 +142,9 @@ dependencies = [
[[package]] [[package]]
name = "anyhow" name = "anyhow"
version = "1.0.82" version = "1.0.83"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519" checksum = "25bdb32cbbdce2b519a9cd7df3a678443100e265d5e25ca763b7572a5104f5f3"
[[package]] [[package]]
name = "ark-ff" name = "ark-ff"
@@ -284,7 +284,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.60", "syn 2.0.61",
] ]
[[package]] [[package]]
@@ -473,7 +473,7 @@ dependencies = [
"heck 0.5.0", "heck 0.5.0",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.60", "syn 2.0.61",
] ]
[[package]] [[package]]
@@ -738,9 +738,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
[[package]] [[package]]
name = "errno" name = "errno"
version = "0.3.8" version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
dependencies = [ dependencies = [
"libc", "libc",
"windows-sys 0.52.0", "windows-sys 0.52.0",
@@ -857,9 +857,9 @@ dependencies = [
[[package]] [[package]]
name = "getrandom" name = "getrandom"
version = "0.2.14" version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"libc", "libc",
@@ -1029,7 +1029,7 @@ dependencies = [
[[package]] [[package]]
name = "inkwell" name = "inkwell"
version = "0.4.0" version = "0.4.0"
source = "git+https://github.com/TheDan64/inkwell.git#5d5a531c765a6ad37aa6591c0287d0f9109fff62" source = "git+https://github.com/TheDan64/inkwell.git#6c0fb56b3554e939f9ca61b465043d6a84fb7b95"
dependencies = [ dependencies = [
"either", "either",
"inkwell_internals", "inkwell_internals",
@@ -1043,11 +1043,11 @@ dependencies = [
[[package]] [[package]]
name = "inkwell_internals" name = "inkwell_internals"
version = "0.9.0" version = "0.9.0"
source = "git+https://github.com/TheDan64/inkwell.git#5d5a531c765a6ad37aa6591c0287d0f9109fff62" source = "git+https://github.com/TheDan64/inkwell.git#6c0fb56b3554e939f9ca61b465043d6a84fb7b95"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.60", "syn 2.0.61",
] ]
[[package]] [[package]]
@@ -1125,9 +1125,9 @@ dependencies = [
[[package]] [[package]]
name = "keccak-asm" name = "keccak-asm"
version = "0.1.0" version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb8515fff80ed850aea4a1595f2e519c003e2a00a82fe168ebf5269196caf444" checksum = "47a3633291834c4fbebf8673acbc1b04ec9d151418ff9b8e26dcd79129928758"
dependencies = [ dependencies = [
"digest 0.10.7", "digest 0.10.7",
"sha3-asm", "sha3-asm",
@@ -1186,7 +1186,7 @@ dependencies = [
"lazy_static", "lazy_static",
"libc", "libc",
"regex-lite", "regex-lite",
"semver 1.0.22", "semver 1.0.23",
] ]
[[package]] [[package]]
@@ -1218,9 +1218,9 @@ dependencies = [
[[package]] [[package]]
name = "num" name = "num"
version = "0.4.2" version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3135b08af27d103b0a51f2ae0f8632117b7b185ccf931445affa8df530576a41" checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23"
dependencies = [ dependencies = [
"num-bigint", "num-bigint",
"num-complex", "num-complex",
@@ -1232,20 +1232,19 @@ dependencies = [
[[package]] [[package]]
name = "num-bigint" name = "num-bigint"
version = "0.4.4" version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7"
dependencies = [ dependencies = [
"autocfg",
"num-integer", "num-integer",
"num-traits", "num-traits",
] ]
[[package]] [[package]]
name = "num-complex" name = "num-complex"
version = "0.4.5" version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6" checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
dependencies = [ dependencies = [
"num-traits", "num-traits",
] ]
@@ -1272,11 +1271,10 @@ dependencies = [
[[package]] [[package]]
name = "num-rational" name = "num-rational"
version = "0.4.1" version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
dependencies = [ dependencies = [
"autocfg",
"num-bigint", "num-bigint",
"num-integer", "num-integer",
"num-traits", "num-traits",
@@ -1322,9 +1320,9 @@ dependencies = [
[[package]] [[package]]
name = "parity-scale-codec" name = "parity-scale-codec"
version = "3.6.9" version = "3.6.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "881331e34fa842a2fb61cc2db9643a8fedc615e47cfcc52597d1af0db9a7e8fe" checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee"
dependencies = [ dependencies = [
"arrayvec", "arrayvec",
"bitvec", "bitvec",
@@ -1336,11 +1334,11 @@ dependencies = [
[[package]] [[package]]
name = "parity-scale-codec-derive" name = "parity-scale-codec-derive"
version = "3.6.9" version = "3.6.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be30eaf4b0a9fba5336683b38de57bb86d179a35862ba6bfcf57625d006bde5b" checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c"
dependencies = [ dependencies = [
"proc-macro-crate 2.0.2", "proc-macro-crate",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 1.0.109", "syn 1.0.109",
@@ -1348,9 +1346,9 @@ dependencies = [
[[package]] [[package]]
name = "paste" name = "paste"
version = "1.0.14" version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
[[package]] [[package]]
name = "path-slash" name = "path-slash"
@@ -1487,22 +1485,11 @@ dependencies = [
[[package]] [[package]]
name = "proc-macro-crate" name = "proc-macro-crate"
version = "1.3.1" version = "3.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
dependencies = [ dependencies = [
"once_cell", "toml_edit",
"toml_edit 0.19.15",
]
[[package]]
name = "proc-macro-crate"
version = "2.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24"
dependencies = [
"toml_datetime",
"toml_edit 0.20.2",
] ]
[[package]] [[package]]
@@ -1531,9 +1518,9 @@ dependencies = [
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.81" version = "1.0.82"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba" checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b"
dependencies = [ dependencies = [
"unicode-ident", "unicode-ident",
] ]
@@ -1745,6 +1732,7 @@ dependencies = [
"env_logger", "env_logger",
"hex", "hex",
"polkavm", "polkavm",
"rayon",
"revive-common", "revive-common",
"revive-differential", "revive-differential",
"revive-llvm-context", "revive-llvm-context",
@@ -1787,7 +1775,7 @@ dependencies = [
"revive-common", "revive-common",
"revive-linker", "revive-linker",
"revive-stdlib", "revive-stdlib",
"semver 1.0.22", "semver 1.0.23",
"serde", "serde",
"sha2", "sha2",
"sha3", "sha3",
@@ -1812,7 +1800,7 @@ dependencies = [
"regex", "regex",
"revive-common", "revive-common",
"revive-llvm-context", "revive-llvm-context",
"semver 1.0.22", "semver 1.0.23",
"serde", "serde",
"serde_json", "serde_json",
"sha3", "sha3",
@@ -1880,9 +1868,9 @@ checksum = "f86854cf50259291520509879a5c294c3c9a4c334e9ff65071c51e42ef1e2343"
[[package]] [[package]]
name = "rustc-demangle" name = "rustc-demangle"
version = "0.1.23" version = "0.1.24"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
[[package]] [[package]]
name = "rustc-hash" name = "rustc-hash"
@@ -1911,7 +1899,7 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
dependencies = [ dependencies = [
"semver 1.0.22", "semver 1.0.23",
] ]
[[package]] [[package]]
@@ -1941,9 +1929,9 @@ dependencies = [
[[package]] [[package]]
name = "ryu" name = "ryu"
version = "1.0.17" version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
[[package]] [[package]]
name = "same-file" name = "same-file"
@@ -1956,9 +1944,9 @@ dependencies = [
[[package]] [[package]]
name = "scale-info" name = "scale-info"
version = "2.11.2" version = "2.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c453e59a955f81fb62ee5d596b450383d699f152d350e9d23a0db2adb78e4c0" checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024"
dependencies = [ dependencies = [
"bitvec", "bitvec",
"cfg-if", "cfg-if",
@@ -1969,11 +1957,11 @@ dependencies = [
[[package]] [[package]]
name = "scale-info-derive" name = "scale-info-derive"
version = "2.11.2" version = "2.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "18cf6c6447f813ef19eb450e985bcce6705f9ce7660db221b59093d15c79c4b7" checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62"
dependencies = [ dependencies = [
"proc-macro-crate 1.3.1", "proc-macro-crate",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 1.0.109", "syn 1.0.109",
@@ -2004,9 +1992,9 @@ dependencies = [
[[package]] [[package]]
name = "semver" name = "semver"
version = "1.0.22" version = "1.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
dependencies = [ dependencies = [
"serde", "serde",
] ]
@@ -2022,29 +2010,29 @@ dependencies = [
[[package]] [[package]]
name = "serde" name = "serde"
version = "1.0.200" version = "1.0.201"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ddc6f9cc94d67c0e21aaf7eda3a010fd3af78ebf6e096aa6e2e13c79749cce4f" checksum = "780f1cebed1629e4753a1a38a3c72d30b97ec044f0aef68cb26650a3c5cf363c"
dependencies = [ dependencies = [
"serde_derive", "serde_derive",
] ]
[[package]] [[package]]
name = "serde_derive" name = "serde_derive"
version = "1.0.200" version = "1.0.201"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "856f046b9400cee3c8c94ed572ecdb752444c24528c035cd35882aad6f492bcb" checksum = "c5e405930b9796f1c00bee880d03fc7e0bb4b9a11afc776885ffe84320da2865"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.60", "syn 2.0.61",
] ]
[[package]] [[package]]
name = "serde_json" name = "serde_json"
version = "1.0.116" version = "1.0.117"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813" checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
dependencies = [ dependencies = [
"itoa", "itoa",
"ryu", "ryu",
@@ -2095,9 +2083,9 @@ dependencies = [
[[package]] [[package]]
name = "sha3-asm" name = "sha3-asm"
version = "0.1.0" version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bac61da6b35ad76b195eb4771210f947734321a8d81d7738e1580d953bc7a15e" checksum = "a9b57fd861253bff08bb1919e995f90ba8f4889de2726091c8876f3a4e823b40"
dependencies = [ dependencies = [
"cc", "cc",
"cfg-if", "cfg-if",
@@ -2209,9 +2197,9 @@ dependencies = [
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.60" version = "2.0.61"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3" checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@@ -2227,7 +2215,7 @@ dependencies = [
"paste", "paste",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.60", "syn 2.0.61",
] ]
[[package]] [[package]]
@@ -2259,22 +2247,22 @@ dependencies = [
[[package]] [[package]]
name = "thiserror" name = "thiserror"
version = "1.0.59" version = "1.0.60"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa" checksum = "579e9083ca58dd9dcf91a9923bb9054071b9ebbd800b342194c9feb0ee89fc18"
dependencies = [ dependencies = [
"thiserror-impl", "thiserror-impl",
] ]
[[package]] [[package]]
name = "thiserror-impl" name = "thiserror-impl"
version = "1.0.59" version = "1.0.60"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66" checksum = "e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.60", "syn 2.0.61",
] ]
[[package]] [[package]]
@@ -2298,26 +2286,15 @@ dependencies = [
[[package]] [[package]]
name = "toml_datetime" name = "toml_datetime"
version = "0.6.3" version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
[[package]] [[package]]
name = "toml_edit" name = "toml_edit"
version = "0.19.15" version = "0.21.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
dependencies = [
"indexmap",
"toml_datetime",
"winnow",
]
[[package]]
name = "toml_edit"
version = "0.20.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
dependencies = [ dependencies = [
"indexmap", "indexmap",
"toml_datetime", "toml_datetime",
@@ -2436,7 +2413,7 @@ dependencies = [
"once_cell", "once_cell",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.60", "syn 2.0.61",
"wasm-bindgen-shared", "wasm-bindgen-shared",
] ]
@@ -2458,7 +2435,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.60", "syn 2.0.61",
"wasm-bindgen-backend", "wasm-bindgen-backend",
"wasm-bindgen-shared", "wasm-bindgen-shared",
] ]
@@ -2682,22 +2659,22 @@ dependencies = [
[[package]] [[package]]
name = "zerocopy" name = "zerocopy"
version = "0.7.33" version = "0.7.34"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "087eca3c1eaf8c47b94d02790dd086cd594b912d2043d4de4bfdd466b3befb7c" checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087"
dependencies = [ dependencies = [
"zerocopy-derive", "zerocopy-derive",
] ]
[[package]] [[package]]
name = "zerocopy-derive" name = "zerocopy-derive"
version = "0.7.33" version = "0.7.34"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f4b6c273f496d8fd4eaf18853e6b448760225dc030ff2c485a786859aea6393" checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.60", "syn 2.0.61",
] ]
[[package]] [[package]]
@@ -2717,7 +2694,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.60", "syn 2.0.61",
] ]
[[package]] [[package]]
+6 -2
View File
@@ -1,4 +1,4 @@
.PHONY: install format test test-solidity test-cli test-integration clean .PHONY: install format test test-solidity test-cli test-integration test-workspace clean
install: install-bin install-npm install: install-bin install-npm
@@ -11,7 +11,8 @@ install-npm:
format: format:
cargo fmt --all --check cargo fmt --all --check
test: format install test-integration test-cli test-solidity test: format install test-cli test-workspace
cargo test --workspace
test-integration: install-bin test-integration: install-bin
cargo test --package revive-integration cargo test --package revive-integration
@@ -19,6 +20,9 @@ test-integration: install-bin
test-solidity: install test-solidity: install
cargo test --package revive-solidity cargo test --package revive-solidity
test-workspace: install
cargo test --workspace
test-cli: install test-cli: install
npm run test:cli npm run test:cli
+1
View File
@@ -21,3 +21,4 @@ revive-common = { path = "../common" }
sha1 = { workspace = true } sha1 = { workspace = true }
serde = { workspace = true } serde = { workspace = true }
serde_json = { workspace = true } serde_json = { workspace = true }
rayon = { workspace = true }
+4 -2
View File
@@ -1,7 +1,9 @@
{ {
"Baseline": 3917, "Baseline": 3917,
"Computation": 7363, "Computation": 7363,
"ERC20": 53193, "DivisionArithmetics": 43028,
"ERC20": 53019,
"Fibonacci": 5965, "Fibonacci": 5965,
"Flipper": 4336 "Flipper": 4336,
"SHA1": 35878
} }
+47 -24
View File
@@ -95,6 +95,12 @@ sol!(
} }
); );
sol!(
contract MStore8 {
function mStore8(uint value) public pure returns (uint256 word);
}
);
impl Contract { impl Contract {
pub fn baseline() -> Self { pub fn baseline() -> Self {
let code = include_str!("../contracts/Baseline.sol"); let code = include_str!("../contracts/Baseline.sol");
@@ -282,10 +288,23 @@ impl Contract {
calldata: DivisionArithmetics::smodCall::new((n, d)).abi_encode(), calldata: DivisionArithmetics::smodCall::new((n, d)).abi_encode(),
} }
} }
pub fn mstore8(value: U256) -> Self {
let code = include_str!("../contracts/mStore8.sol");
let name = "MStore8";
Self {
evm_runtime: crate::compile_evm_bin_runtime(name, code),
pvm_runtime: crate::compile_blob(name, code),
calldata: MStore8::mStore8Call::new((value,)).abi_encode(),
}
}
} }
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use alloy_primitives::U256;
use rayon::iter::{IntoParallelRefIterator, ParallelIterator};
use serde::{de::Deserialize, Serialize}; use serde::{de::Deserialize, Serialize};
use std::{collections::BTreeMap, fs::File}; use std::{collections::BTreeMap, fs::File};
@@ -304,33 +323,37 @@ mod tests {
}) })
.ok(); .ok();
let sizes = BTreeMap::from([ let cases: [(&str, Box<dyn Fn() -> Contract + Send + Sync>); 7] = [
("Baseline", Contract::baseline().pvm_runtime.len()), ("Baseline", Box::new(|| Contract::baseline())),
("Flipper", Contract::flipper().pvm_runtime.len()), ("Flipper", Box::new(|| Contract::flipper())),
("Computation", Contract::odd_product(0).pvm_runtime.len()), ("Computation", Box::new(|| Contract::odd_product(0))),
("Fibonacci", Contract::fib_iterative(0).pvm_runtime.len()), ("Fibonacci", Box::new(|| Contract::fib_iterative(0))),
("ERC20", Contract::erc20().pvm_runtime.len()), ("ERC20", Box::new(|| Contract::erc20())),
]); ("SHA1", Box::new(|| Contract::sha1(Vec::new()))),
(
"DivisionArithmetics",
Box::new(|| Contract::division_arithmetics_div(U256::ZERO, U256::ZERO)),
),
];
for (name, bytes) in sizes.iter() { cases
let change = existing .par_iter()
.as_ref() .map(|(name, f)| (*name, f().pvm_runtime.len()))
.and_then(|map| map.get(*name)) .inspect(|(name, bytes)| {
.map(|old| { let change = existing
let new = *bytes as f32; .as_ref()
let old = *old as f32; .and_then(|map| map.get(*name))
let p = (new - old) / new * 100.0; .map(|old| {
format!("({p}% change from {old} bytes)") let p = (*bytes - *old) as f32 / *old as f32 * 100.0;
}) format!("({p}% change from {old} bytes)")
.unwrap_or_default(); })
.unwrap_or_default();
println!("{name}: {bytes} bytes {change}"); println!("{name}: {bytes} bytes {change}");
} })
.collect::<BTreeMap<_, _>>()
sizes
.serialize(&mut serde_json::Serializer::pretty( .serialize(&mut serde_json::Serializer::pretty(
File::create(path).unwrap(), File::create(path).unwrap(),
)) ))
.unwrap_or_else(|err| panic!("can not write codesize data to '{}': {}", path, err)); .unwrap_or_else(|err| panic!("can not write codesize data to '{path}': {err}"));
} }
} }
+52 -38
View File
@@ -1,5 +1,6 @@
use alloy_primitives::{Address, FixedBytes, Keccak256, I256, U256}; use alloy_primitives::{Address, FixedBytes, Keccak256, I256, U256};
use alloy_sol_types::{sol, SolCall}; use alloy_sol_types::{sol, SolCall};
use rayon::iter::{IntoParallelRefIterator, ParallelIterator};
use sha1::Digest; use sha1::Digest;
use crate::{ use crate::{
@@ -169,26 +170,7 @@ fn msize_non_word_sized_access() {
#[test] #[test]
fn mstore8() { fn mstore8() {
sol!( for (received, expected) in [
#[derive(Debug, PartialEq, Eq)]
contract MStore8 {
function mStore8(uint value) public pure returns (uint256 word);
}
);
let code = crate::compile_blob("MStore8", include_str!("../contracts/mStore8.sol"));
let (mut instance, export) = mock_runtime::prepare(&code, None);
let mut assert = |parameter, expected| {
let input = MStore8::mStore8Call::new((parameter,)).abi_encode();
let state = crate::mock_runtime::call(State::new(input), &mut instance, export);
assert_eq!(state.output.flags, 0);
let received = U256::from_be_bytes::<32>(state.output.data.try_into().unwrap());
assert_eq!(received, expected);
};
for (parameter, expected) in [
(U256::MIN, U256::MIN), (U256::MIN, U256::MIN),
( (
U256::from(1), U256::from(1),
@@ -247,8 +229,16 @@ fn mstore8() {
) )
.unwrap(), .unwrap(),
), ),
] { ]
assert(parameter, expected); .par_iter()
.map(|(parameter, expected)| {
let state = assert_success(Contract::mstore8(*parameter), true);
let received = U256::from_be_bytes::<32>(state.output.data.try_into().unwrap());
(received, *expected)
})
.collect::<Vec<_>>()
{
assert_eq!(received, expected);
} }
} }
@@ -302,16 +292,22 @@ fn unsigned_division() {
let one = U256::from(1); let one = U256::from(1);
let two = U256::from(2); let two = U256::from(2);
let five = U256::from(5); let five = U256::from(5);
for (n, d, q) in [ for (received, expected) in [
(five, five, one), (five, five, one),
(five, one, five), (five, one, five),
(U256::ZERO, U256::MAX, U256::ZERO), (U256::ZERO, U256::MAX, U256::ZERO),
(five, two, two), (five, two, two),
(one, U256::ZERO, U256::ZERO), (one, U256::ZERO, U256::ZERO),
] { ]
let state = assert_success(Contract::division_arithmetics_div(n, d), true); .par_iter()
.map(|(n, d, q)| {
let state = assert_success(Contract::division_arithmetics_div(*n, *d), true);
let received = U256::from_be_bytes::<32>(state.output.data.try_into().unwrap()); let received = U256::from_be_bytes::<32>(state.output.data.try_into().unwrap());
assert_eq!(received, q); (received, *q)
})
.collect::<Vec<_>>()
{
assert_eq!(received, expected)
} }
} }
@@ -322,7 +318,7 @@ fn signed_division() {
let minus_two = I256::try_from(-2).unwrap(); let minus_two = I256::try_from(-2).unwrap();
let five = I256::try_from(5).unwrap(); let five = I256::try_from(5).unwrap();
let minus_five = I256::try_from(-5).unwrap(); let minus_five = I256::try_from(-5).unwrap();
for (n, d, q) in [ for (received, expected) in [
(five, five, one), (five, five, one),
(five, one, five), (five, one, five),
(I256::ZERO, I256::MAX, I256::ZERO), (I256::ZERO, I256::MAX, I256::ZERO),
@@ -334,10 +330,16 @@ fn signed_division() {
(minus_five, two, minus_two), (minus_five, two, minus_two),
(I256::MINUS_ONE, I256::MIN, I256::ZERO), (I256::MINUS_ONE, I256::MIN, I256::ZERO),
(one, I256::ZERO, I256::ZERO), (one, I256::ZERO, I256::ZERO),
] { ]
let state = assert_success(Contract::division_arithmetics_sdiv(n, d), true); .par_iter()
.map(|(n, d, q)| {
let state = assert_success(Contract::division_arithmetics_sdiv(*n, *d), true);
let received = I256::from_be_bytes::<32>(state.output.data.try_into().unwrap()); let received = I256::from_be_bytes::<32>(state.output.data.try_into().unwrap());
assert_eq!(received, q); (received, *q)
})
.collect::<Vec<_>>()
{
assert_eq!(received, expected);
} }
} }
@@ -346,7 +348,7 @@ fn unsigned_remainder() {
let one = U256::from(1); let one = U256::from(1);
let two = U256::from(2); let two = U256::from(2);
let five = U256::from(5); let five = U256::from(5);
for (n, d, q) in [ for (received, expected) in [
(five, five, U256::ZERO), (five, five, U256::ZERO),
(five, one, U256::ZERO), (five, one, U256::ZERO),
(U256::ZERO, U256::MAX, U256::ZERO), (U256::ZERO, U256::MAX, U256::ZERO),
@@ -354,10 +356,16 @@ fn unsigned_remainder() {
(five, two, one), (five, two, one),
(two, five, two), (two, five, two),
(U256::MAX, U256::ZERO, U256::ZERO), (U256::MAX, U256::ZERO, U256::ZERO),
] { ]
let state = assert_success(Contract::division_arithmetics_mod(n, d), true); .par_iter()
.map(|(n, d, q)| {
let state = assert_success(Contract::division_arithmetics_mod(*n, *d), true);
let received = U256::from_be_bytes::<32>(state.output.data.try_into().unwrap()); let received = U256::from_be_bytes::<32>(state.output.data.try_into().unwrap());
assert_eq!(received, q); (received, *q)
})
.collect::<Vec<_>>()
{
assert_eq!(received, expected);
} }
} }
@@ -368,7 +376,7 @@ fn signed_remainder() {
let minus_two = I256::try_from(-2).unwrap(); let minus_two = I256::try_from(-2).unwrap();
let five = I256::try_from(5).unwrap(); let five = I256::try_from(5).unwrap();
let minus_five = I256::try_from(-5).unwrap(); let minus_five = I256::try_from(-5).unwrap();
for (n, d, q) in [ for (received, expected) in [
(five, five, I256::ZERO), (five, five, I256::ZERO),
(five, one, I256::ZERO), (five, one, I256::ZERO),
(I256::ZERO, I256::MAX, I256::ZERO), (I256::ZERO, I256::MAX, I256::ZERO),
@@ -386,9 +394,15 @@ fn signed_remainder() {
(minus_two, minus_five, minus_two), (minus_two, minus_five, minus_two),
(I256::MIN, I256::MINUS_ONE, I256::ZERO), (I256::MIN, I256::MINUS_ONE, I256::ZERO),
(I256::ZERO, I256::ZERO, I256::ZERO), (I256::ZERO, I256::ZERO, I256::ZERO),
] { ]
let state = assert_success(Contract::division_arithmetics_smod(n, d), true); .par_iter()
.map(|(n, d, q)| {
let state = assert_success(Contract::division_arithmetics_smod(*n, *d), true);
let received = I256::from_be_bytes::<32>(state.output.data.try_into().unwrap()); let received = I256::from_be_bytes::<32>(state.output.data.try_into().unwrap());
assert_eq!(received, q); (received, *q)
})
.collect::<Vec<_>>()
{
assert_eq!(received, expected);
} }
} }
@@ -33,7 +33,7 @@ pub fn check_attribute_null_pointer_is_invalid() {
Some(inkwell::module::Linkage::External), Some(inkwell::module::Linkage::External),
) )
.expect("Failed to add function"); .expect("Failed to add function");
assert!(function assert!(!function
.borrow() .borrow()
.declaration() .declaration()
.value .value