Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

Run tests 

All the unit tests are run as part of the build, but can be explicitly triggered with:

./gradlew test

The integration tests can be triggered with:

./gradlew integrationTest

The reference tests (described below) can be triggered with:

./gradlew referenceTest

The system tests can be triggered with:

./gradlew smokeTest

The acceptance tests can be triggered with:

./gradlew acceptanceTest

Ethereum reference tests 

On top of the project proper unit tests, specific unit tests are provided to run the Ethereum reference tests available at https://github.com/ethereum/tests and described at http://ethereum-tests.readthedocs.io/en/latest/. Those are run as part of the unit test suite as described above, but for debugging it is often convenient to run only a subset of those tests. For example, run only Frontier general state tests with: 

./gradlew :ethereum:org.hyperledger.besu.ethereum.vm:referenceTest -Dtest.single=GeneralStateTest -Dtest.ethereum.state.eip=Frontier

Or only the tests that match a particular pattern with something like:

gradle :ethereum:org.hyperledger.besu.ethereum.vm:test -Dtest.single=GeneralStateTest -Dtest.ethereum.include='^CALLCODE.*-Frontier'

For more details, see the comment on the test target in the top level build.gradle file.


Hive tests 

A suite of end to end client tests that are not invoked directly is provided here, https://github.com/ethereum/hive. These tests are run against all clients and results can be seen at https://hivetests.ethdevops.io/.

Running Hive Tests

  • consensus
    • sudo ./hive --sim consensus --loglevel 6 --docker-noshell --client besu_latest --sim.parallelism 1 --sim.rootcontext
  • graphql
    • sudo ./hive --sim graphql --loglevel 6 --docker-noshell --client besu_latest --sim.parallelism 1 --sim.rootcontext
  • devp2p
    • sudo ./hive --sim devp2p --loglevel 6 --docker-noshell --client besu_latest --sim.parallelism 1 --sim.rootcontext
  • sync
    • sudo ./hive --sim ethereum/sync --loglevel 6 --docker-noshell --client besu_latest,openethereum_latest,go-ethereum_latest --sim.parallelism 1 --sim.rootcontext

Known Failures

Currently there are 16 consensus tests and 3 sync tests that are failing. The consensus tests are believed to be performance related and the sync tests involve aleth and nethermind clients which are not properly configured within the test suite.

  • failing consensus tests
    • modexp_37120_37111_37111_25000_d0g0v0_Istanbul
    • modexp_9_3711_37111_25000_d0g1v0_Istanbul
    • CallEcrecover0_NoGas_d0g0v0_Istanbul
    • sstore_0toXtoX_d1g0v0_Istanbul
    • static_callcallcodecall_010_2_d1g0v0_Istanbul
    • CALLBlake2f_MaxRounds_d0g0v0_Istanbul
    • sstore_combinations_initial00_d26g0v0_Istanbul
    • sstore_combinations_initial11_2_d280g0v0_Istanbul
    • sstore_combinations_initial11_2_d36g0v0_Istanbul
    • sstore_combinations_initial20_d373g0v0_Istanbul
    • StoreClearsAndInternlCallStoreClearsSuccess_d0g0v0_Istanbul
    • ecmul_1-3_0_21000_80_d0g3v0_Istanbul
    • pointMulAdd_d5g2v0_Istanbul
    • pointMulAdd2_d25g3v0_Istanbul
    • ecmul_0-3_340282366920938463463374607431768211456_28000_80_d0g3v0_Istanbul
    • SimpleTxCosts20000_Frontier
  • failing sync tests
    • fast-sync aleth_nightly -> besu_latest
    • fast-sync besu_latest -> aleth_nightly
    • fast-sync nethermind_latest -> besu_latest


  • No labels