diff options
-rw-r--r-- | README.md | 12 | ||||
-rw-r--r-- | docs/test_types/blockchain_tests.rst | 40 | ||||
-rw-r--r-- | docs/using-testeth.rst | 6 |
3 files changed, 33 insertions, 25 deletions
@@ -1,7 +1,17 @@ tests [![Build Status](https://travis-ci.org/ethereum/tests.svg?branch=develop)](https://travis-ci.org/ethereum/tests) ===== -Common tests for all clients to test against. See the documentation http://ethereum-tests.readthedocs.io/ +Common tests for all clients to test against. + +Test Formats +------------ + +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](https://github.com/ethereum/tests/commit/3be71ec3364a01fd4f2cb9b9fd086f3f69f0225c) or BlockchainTest format [docs](https://ethereum-tests.readthedocs.io/en/latest/test_types/blockchain_tests.html) 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. Contents of this repository --------------------------- diff --git a/docs/test_types/blockchain_tests.rst b/docs/test_types/blockchain_tests.rst index c9b6dd359..cb4e9ab94 100644 --- a/docs/test_types/blockchain_tests.rst +++ b/docs/test_types/blockchain_tests.rst @@ -39,6 +39,8 @@ The client is expected to iterate through the list of blocks and ignore invalid Test Structure -------------- +For a formal structure definition see also the related `JSON Schema <https://github.com/ethereum/tests/blob/develop/JSONSchema/bc-schema.json>`_ in the repo. + :: { @@ -63,31 +65,12 @@ Test Structure "lastblockhash": " ... ", "network": "Byzantium", "postState": { ... }, - "pre": { ... } + "pre": { ... }, + "sealEngine": [ "NoProof" | "Ethash" ] }, "TESTNAME_EIP150": { - "blocks" : [ - { - "blockHeader": { ... }, - "rlp": { ... }, - "transactions": { ... }, - "uncleHeaders": { ... } - }, - { - "blockHeader": { ... }, - "rlp": { ... }, - "transactions": { ... }, - "uncleHeaders": { ... } - }, - { ... } - ], - "genesisBlockHeader": { ... }, - "genesisRLP": " ... ", - "lastblockhash": " ... ", - "network": "Byzantium", - "postState": { ... }, - "pre": { ... } - }, + ... + } ... } @@ -160,6 +143,17 @@ Pre and postState Sections * ``postState`` section: as described in :ref:`state_tests` (section - post). +Seal Engine +^^^^^^^^^^^ + +The ``sealEngine`` parameter (values: ``NoProof`` | ``Ethash``) defines the seal engine the +test is generated with. For tests with a value ``NoProof`` you can skip block validation +which will speed up test execution. Note that this also means that you cannot rely on +``PoW`` specific block header values (``mixHash``, ``nonce``) for tests labelled this way. + +Currently this field is optional and there are still tests with no ``sealEngine`` parameter +with the default here being the ``NoProof`` setting. So make sure to first check on parameter +existence in your implementation. Optional BlockHeader Information ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/docs/using-testeth.rst b/docs/using-testeth.rst index b725b8746..1395447ad 100644 --- a/docs/using-testeth.rst +++ b/docs/using-testeth.rst @@ -4,7 +4,11 @@ Test Creation Instructions on how to create tests and how to use the cpp-client ``testeth`` tool can be found in the c++ documentation -`test generation chapter <https://github.com/ethereum/cpp-ethereum/blob/develop/doc/generating_tests.rst>`_. +`test generation chapter <https://github.com/ethereum/aleth/blob/master/doc/generating_tests.rst>`_. + +Since docker images pointed to in the test generation docs are often outdated, you will probably +have to rely on your own `source build <https://github.com/ethereum/aleth/#building-from-source>`_ of the Aleth C++ +Ethereum client for generating tests (start this early on since this is taking some time). |