Common tests for all Ethereum implementations
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Hugo e89fcb01c7 Add CALLF Stack Overflow test 1 month ago
ABITests Changed one test 6 years ago
BasicTests Remove diff tests (updated ones) from BasicTests 2 years ago
BlockchainTests mark bigint in bc withdrawals tests 1 month ago
DifficultyTests update DifficultyTests header version 3 months ago
EIPTests Change nonce behaviour to "always bump", Start EOF tests from Cancun 1 month ago
EOFTests Add CALLF Stack Overflow test 1 month ago
GeneralStateTests Remove not needed filled tests 2 months ago
GenesisTests Unify the cases of "mixHash"; there were some "mixhash" 6 years ago
JSONSchema txbytes scheme 2 years ago
KeyStoreTests Added KeyStore test based on MyCrypto file 4 years ago
LegacyTests@97de5bce3a update legacy tests 2 months ago
PoWTests Unify the cases of "mixHash"; there were some "mixhash" 6 years ago
RLPTests Add RLP invalid tests for insufficient bytes. 4 years ago
TransactionTests change exception in malicious tx RLP 1 month ago
TrieTests added a missing test - it was possible to write Tree code that would pass other tests but not this one 6 years ago
ansible Added some memory expanding tests 7 years ago
docs feat(docs/retesteth-ref): Add --filloutdated 3 months ago
src Add CALLF Stack Overflow test 1 month ago
.gitignore gitignore unittests 1 year ago
.gitmodules Add ethereum/legacytests as submodule, add src symlink 2 years ago
.travis.yml enable EOF tests hash verification 2 months ago
CHANGELOG.md Added CHANGELOG entry for v7.0.0 pre-Berlin HF release 3 years ago
LICENSE license 6 years ago
PRLOG.md split LegacyTests sstore combinations 1 3 years ago
README.md Update README.md 2 years ago
TODO Testing submodules 9 years ago
requirements.txt Specified dependency version ranges, added .env3 to gitignore 5 years ago

README.md

Ethereum Consensus Tests Build Status

Common tests for all clients to test against. Test execution tool: https://github.com/ethereum/retesteth

Test Formats

Maintained tests:

/BasicTests
/BlockchainTests
/GeneralStateTests
/TransactionTests
/RLPTest
/src

See descriptions of the different test formats in the official documentation at http://ethereum-tests.readthedocs.io/.

Note:
The format of BlockchainTests recently changed with the introduction of a new field sealEngine (values: NoProof | Ethash), see related JSON Schema change or BlockchainTest format docs for reference.

This means that you can skip PoW validation for NoProof tests but also has the consequence that it is not possible to rely on/check PoW related block parameters for these tests any more.

Clients using the library

The following clients make use of the tests from this library. You can use these implementations for inspiration on how to integrate. If your client is missing, please submit a PR (requirement: at least some minimal test documentation)!

Using the Tests

We do versioned tag releases for tests and you should aim to run your client libraries against the latest repository snapshot tagged.

Generally the develop branch in ethereum/tests is always meant to be stable and you should be able to run your test against.

Contribute to the Test Suite

See the dedicated section in the docs on how to write new tests. Or read a shorter description here.

If you want to follow up with current tasks and what is currently in the works, have a look at the issues

Currently the geth evm t8ntool client is the reference client for generating tests. Besu client also has support for generating the tests using rpc test protocol. See at https://github.com/ethereum/retesteth/wiki

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/

Contents of this repository

Do not change test files in folders:

  • StateTests
  • BlockchainTests
  • TransactionTests
  • VMTests

It is being created by the testFillers which could be found at src folder. The filler specification and wiki are in development so please ask on gitter channel for more details.

If you want to modify a test filler or add a new test please contact @wdimitry at telegram Use the following guide: https://github.com/ethereum/retesteth/wiki/Creating-a-State-Test-with-retesteth