Test Script Generator for "Cartesian" testing of EVM Operations.
Install Java 12 or greater.
Install a current solidity compiler (> 0.8.5), and have it on the execution path.
brew install solidity
Then to build an executable version
./gradlew installDist
To launch CartEVM use ./build/install/cartevm/bin/cartevm
For tasks that produce output, the --output-dir will control where the output
is generated.
To filter the names of the steps use the --steps-regexp option. For example
'--steps-regexp=.*_gas'
or '--steps-regexp=(call|delegatecall|callcode|staticcall)'.
--size-limit limits the maximum binary size of generated programs.
--gas-limit limites the target gas consumption of the programs
--steps configures the number of steps to combine. These will be combined as a
cartesian product when combining more than 1 step. A value of 1 completes in a
short time, a value of 2 in a number of hours, and 3 in a number of days.
To run the test locally with the embedded Besu EVM pass in the --local command
line option.
The --repeat option will repeat the local execution that may times before
reporting results.
The --verbose option will create reports flr all runs when --repeat is
specified, instead of just the last run.
To generate smart contract .bin files (hex encoded EVM bytecode) use
the --bytecode command line option.
If you need the bytecode in a deployable form, also pass in the --initcode
command line option. The same binary program will be generate but it will have
loader code prepended to the binary.
To generate Ethereum Fillers pass in the --filler command line option. These
files will then be the input to
the Ethereum Consensus Tests toolchain.