Docker file big update, support pyt8n, besu, evmone, geth, pyspecs, ethereumjs, nimbus
Compatible test release: https://github.com/ethereum/tests/releases/tag/v13
New options:
--singlenet >=forkname select multiple forks when running/generating the tests
--singlenet "fork1,fork2"
--verbosity PYSPEC print pyspec script log
--statediff Frontier--Berlin print state diff between poststates on forkA and forkB of the test
Removed option:
Announcment
Retesteth is ethereum test runner / generator tool for the tests (https://github.com/ethereum/tests)
Uses existing clients to run/generate the tests. See documentation. (https://ethereum-tests.readthedocs.io/en/latest/)
The test process diagram: https://tinyurl.com/y525ezs7
Testing stats
Testing results are available at http://retesteth.ethdevops.io/
There is a web tool for vmtracing the tests using supported clients and retesteth: http://retesteth.ethdevops.io/web/
All blockchain tests are being run by hive tool: https://hivetests.ethdevops.io/
Changelog
Interesting
- docker script with all supported clients in it
- do not require excpetion code to be defined in configs (check the text directly from test if not defined)
- use
t8n eof
tool to run/generate EOFTests - exectimlog measures totaltime, cputime and client t8n subcall time
- support EIP4844 blockheaders, transactions
- support pyt8n transition tool
- cancun fields support in tests and apis
- rejected transactions in state tests filled as invalid blocks in bc version of the state test
- statediff forkA--forkB option
- limit max test suite execution time to 5000 sec
- support
:yul evmversion optimisationflag {}
in test fillers - yul and solc version can be set by adding a special comment in the test src
- print all warnings summary
Client Configs
- better error and log reporting from client .sh scripts
- pyspec managment script
- support besu, ethereumjs, evmone, pyt8n, nimbus t8ns
- more options for the docker.sh script
Technical
- continue Pyspecs .py generation support
- refactor Statetest runner
- disallow multiple keys in .json and .yml (excpet json comment fields)
- do not ask basefee calculation on genesis block
- use c++20 features
- support client configs
- basic libssz tests (develop mode)
- detect .py tests that are marked as skipped
- singlenet option work with .py tests
- rlp_decoded printed in bc tests for invalid blocks too
- support nimbus --vmtrace
- better detect folders and files as tests when passed to retesteth directly without any options
- fix json parse bugs
- allow helper files which are not tests in test folders (required by pyspecs)
ubuntu 20.04.6:
http://retesteth.ethdevops.io/release/0.3.1-cancun/ubuntu-20.04.6/retesteth-0.3.1-cancun-ubuntu-20.04.6
Might need the dependecies install (but better to be run on Ubuntu20):
- sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
- sudo apt-get update
- sudo apt-get install gcc-9
- sudo apt-get install --only-upgrade libstdc++6
macOS-XCode14:
http://retesteth.ethdevops.io/release/0.3.1-cancun/macOS-XCode14/retesteth-0.3.1-cancun-macOS-XCode14
Docker:
Clients updated as of 01.11.2023 (6 GB image)
https://ethereum-tests.readthedocs.io/en/latest/retesteth-tutorial.html#retesteth-in-a-docker-container
geth evm version: evm version 1.13.5-unstable-a3be3812-20231102
lllc version: 0.5.14-develop.2023.7.11+commit.c58ab2c6.mod.Linux.g++
solidity version: 0.8.21+commit.d9974bed.Linux.g++
http://retesteth.ethdevops.io/release/0.3.1-cancun/dretesteth-0.3.1-cancun.tar
Documentation:
https://ethereum-tests.readthedocs.io/en/latest/