Commit Graph

96 Commits

Author SHA1 Message Date
James Wilson 255de530c3 remove --networkid and arg, back to 5s timeout for geth 2025-08-15 16:32:41 +01:00
James Wilson c960f02417 fix line logging 2025-08-15 16:11:11 +01:00
James Wilson 5e19269124 Improve geth stdout logging on failure 2025-08-15 16:05:57 +01:00
James Wilson 458a0901d3 30s timeout 2025-08-15 15:54:41 +01:00
James Wilson 77f389bc74 Bump default geth timeout to 10s 2025-08-15 15:39:02 +01:00
James Wilson 897104857c Merge branch 'main' into jsdw-redo-modes 2025-08-15 14:02:47 +01:00
James Wilson 3837ab86d3 Update kitchensink weights too and fmt 2025-08-15 13:59:49 +01:00
James Wilson 9ae432b86a Update fallback tx weights to avoid out of gas errors 2025-08-15 13:58:13 +01:00
James Wilson 230d6729f4 clippy nits 2025-08-14 16:34:50 +01:00
Omar a59e287fa1 Add a cached fs abstraction (#141) 2025-08-14 15:21:05 +00:00
James Wilson 7e26e5ebcc Remove now-unused deps 2025-08-14 16:20:39 +01:00
James Wilson e5c7bf300b Move compile check to prepare_tests 2025-08-14 16:12:48 +01:00
James Wilson b2290b3177 Re-arrange Mode things; ParsedMode in format and Mode etc in common 2025-08-14 13:02:46 +01:00
James Wilson df6d485471 Rename ModePipeline::E/Y 2025-08-14 12:34:43 +01:00
James Wilson 30a656844f fmt 2025-08-14 10:59:58 +01:00
James Wilson 1c335e5709 constants.mod, and Display for CaseIdx to use it 2025-08-14 10:58:02 +01:00
James Wilson 95ea886ba7 Move Mode to common crate 2025-08-14 10:42:58 +01:00
James Wilson c94e97cfd0 Merge branch 'main' into jsdw-redo-modes 2025-08-14 09:05:26 +01:00
Omar f2045db0e9 Add compiler directives to metadata (#139) 2025-08-14 07:38:56 +00:00
James Wilson 036579fb32 Merge branch 'main' into jsdw-redo-modes 2025-08-13 15:12:26 +01:00
James Wilson 0bc55cf400 Improve test output a little; string modes and list ignored tests 2025-08-13 15:10:03 +01:00
James Wilson ea29bb86c4 Merge branch 'main' into jsdw-redo-modes 2025-08-13 15:00:19 +01:00
Omar 5a11f44673 Misc features/improvements (#138)
* Implement various needed features and improvements

* Reorder the metadata struct

* Format comments
2025-08-13 13:50:06 +00:00
James Wilson 46aea0890d Split reporter and case runner, use channels to pass test reports (#137)
* Use channels to send data to reporting thread and avoid hangs / mutex / duration. Limit max concurrent tasks to avoid too many open files

* More appropriate name for dirver/reporter task fns

* Back to parallelise individual cases, report individual cases, address grumbles

* newline before 'Failures' title in report
2025-08-13 13:10:26 +00:00
Omar 9b40c9b9e3 Add an EVM version filter (#136)
* Add an EVM version filter

* Update naming
2025-08-12 10:19:59 +00:00
Omar f67a9bf643 Refactor/ignore null values (#135)
* Skip serialization of null values

* Add support for comments in various steps
2025-08-12 08:55:21 +00:00
James Wilson fe6a4f790a Elide viaIR input if compiler does not support it 2025-08-11 17:33:10 +01:00
Omar 67d767ffde Implement storage empty assertion (#134) 2025-08-11 13:17:19 +00:00
Omar f7fbe094ec Balance assertions (#133)
* Make metadata serializable

* Refactor tests to use steps

* Add a balance assertion test step

* Test balance deserialization

* Box the test steps

* Permit size difference in step output
2025-08-11 12:11:16 +00:00
Omar 90b2dd4cfe Make metadata serializable (#132) 2025-08-10 21:57:41 +00:00
James Wilson f98c15121d Add ability for compiler to opt out if it can't work with some Mode/version 2025-08-08 17:43:12 +01:00
James Wilson 7b5ffed288 Address nits 2025-08-08 12:40:41 +01:00
James Wilson 2ca220da0f Remove mode we no longer support from test metadata 2025-08-08 11:56:57 +01:00
James Wilson 4c9c001ad7 clippy 2025-08-08 11:02:16 +01:00
James Wilson 88f31348eb fmt 2025-08-08 11:00:41 +01:00
James Wilson cfbb5eefff First pass integrated new mode bits 2025-08-08 10:59:49 +01:00
James Wilson 2d01045ad2 WIP integrate new Mode/ParsedMode into rest of code 2025-08-08 10:50:40 +01:00
James Wilson bd966300a5 test expanding, too 2025-08-08 10:34:50 +01:00
James Wilson e8fa992a3b WIP redo how we parse and use modes 2025-08-07 16:54:26 +01:00
Omar 64d63ef999 Remove the provider cache (#121)
* Remove the provider cache

* Add timing information to the CLI report
2025-08-07 03:55:24 +00:00
Omar 757bfbe116 Add more resolvable variables (#120)
* Allow resolution of base fee

* Fix block difficulty resolution

* Allow for the resolution of gas price
2025-08-06 15:17:36 +00:00
Omar 8619e7feb0 Fix the transaction tracing issues (#118)
* Set the gc mode to archive in geth

* Add a maximum to the exponential backoff wait duration

* Edit the formatting of the CLI case reporter
2025-08-06 12:25:39 +00:00
Omar edba49b301 Use SolidityLang for solc downloads (#117) 2025-08-06 10:35:05 +00:00
Omar 9980926d40 Add a case ignore flag (#114)
* Added a resolver tied to a specific block

* Increase the number of private keys

* Increase kitchensink wait time to 60 seconds

* Add a case ignore flag
2025-08-04 16:40:53 +00:00
Omar ff993d44a5 Added a resolver tied to a specific block (#111)
* Added a resolver tied to a specific block

* Increase the number of private keys

* Increase kitchensink wait time to 60 seconds
2025-08-04 12:45:47 +00:00
Omar 8cbb1a9f77 Added basic console reporting (#110)
* Added basic console reporting

* Add some waiting period to the printing task

* Print to the stderr and print logs to stdout
2025-08-04 06:05:49 +00:00
Omar 56c2fe8c0c Parallelize Cases (#109)
* Parallelize over cases

* Rename the state and driver

* Parallelize execution

* Update the default config of the tool

* Make codebase async

* Fix machete

* Fix tests & clear node directories before startup

* Cleanup the cleanup logic

* Rename geth node
2025-08-01 11:00:08 +00:00
Omar 330a773a1c Add variables support (#96) 2025-07-30 08:41:03 +00:00
Omar f51693cb9f Support multiple compiler versions (#92)
* Allow for downloader to use version requirements.

We will soon add support for the compiler version requirement from the
metadata files to be honored. The compiler version is specified in the
solc modes section of the file and its specified as a `VersionReq` and
not as a version.

Therefore, we need to have the ability to honor this version requirement
and find the best version that satisfies the requirement.

* Request `VersionOrRequirement` in compiler interface

* Honor the compiler version requirement in metadata

This commit honors the compiler version requirement listed in the solc
modes of the metadata file. If this version requirement is provided then
it overrides what was passed in the CLI. Otherwise, the CLI version will
be used.

* Make compiler IO completely generic.

Before this commit, the types that were used for the compiler input and
output were the resolc compiler types which was a leaky abstraction as
we have traits to abstract the compilers away but we expose their
internal types out to other crates.

This commit did the following:
1. Made the compiler IO types fully generic so that all of the logic for
   constructing the map of compiled contracts is all done by the
   compiler implementation and not by the consuming code.
2. Changed the input types used for Solc to be the forge standard JSON
   types for Solc instead of resolc.

* Fix machete

* Add resolc to CI

* Add resolc to CI

* Add resolc to CI

* Add resolc to CI
2025-07-30 04:56:23 +00:00
James Wilson 4db7009640 Ensure path in corpus is relative to corpus file (#85) 2025-07-29 13:12:16 +00:00