Skip to content

Retesteth v0.3.1 - Cancun

Latest
Compare
Choose a tag to compare
@winsvega winsvega released this 02 Nov 10:08
· 2 commits to master since this release
6205647

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/