execution-spec-tests
execution-spec-tests copied to clipboard
A Python framework and collection of test cases to generate test vectors for Ethereum execution clients
## 🗒️ Description #### Allow `Bytes()` Allow instantiating an empty `Bytes` instance by calling it with no parameters. #### Add sha256 calculation to `Bytes` Adds the `sha256` method to all...
## 🗒️ Description Changes the terminal output to emphasize that `fill` did not test the client; rather it generated fixtures that can be executed against a client. ### Before ...
``` test_valid_blob_tx_combinations[fork_Cancun-blockchain_test-blobs_per_tx_(1, 1, 1, 3)] ______________________________________________ [gw2] linux -- Python 3.12.3 /home/wins/Ethereum/execution-spec-tests/.venv/bin/python3 tests/cancun/eip4844_blobs/test_blob_txs.py:604: in test_valid_blob_tx_combinations blockchain_test( src/pytest_plugins/filler/filler.py:805: in __init__ fixture = self.generate( src/ethereum_test_specs/blockchain.py:750: in generate return self.make_fixture(t8n, fork, eips) src/ethereum_test_specs/blockchain.py:568:...
Command breaks besu t8n server: ``` uv run fill --evm-bin=besu-t8n tests/constantinople/eip1014_create2/test_recreate.py ``` ``` tests/constantinople/eip1014_create2/test_recreate.py:113: in test_recreate blockchain_test(genesis_environment=env, pre=pre, post=post, blocks=blocks) src/pytest_plugins/filler/filler.py:805: in __init__ fixture = self.generate( src/ethereum_test_specs/blockchain.py:750: in generate return...
``` {'body': '0xf84df84b800a82cf0780808025a00372ba5e45d0a0e636f7e32ffca16f97a2f3e4e930b6584b7b114ab3aa191b4fa04afdfcd2bc179e25c7aa74cb991a08f0ae6c01541a36f700be25c6f4c39bc098', 'alloc': {'0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b': {'balance': '0x3635c9adc5dea00000'}}, 'result': {'stateRoot': '0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8', 'txRoot': '0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421', 'receiptsRoot': '0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421', 'withdrawalsRoot': '0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421', 'logsHash': '0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347', 'logsBloom': '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 'gasUsed': '0x0', 'currentDifficulty': None, 'currentBaseFee': '0x7', 'rejected': [{'index': 0, 'error':...
## 🗒️ Description Adds a first batch of tests checking stack validation of these two kinds of operations RJUMP-ing and CALLF-ing (and RETF-ing ofc). I'm still missing JUMPF, but I...
## 🗒️ Description Enable coverage script on any test .py files changes: if no new lines in converted-ethereum-tests.txt, then seek for .py files with tests and compare the coverage from...
The [`gentest` CLI](https://github.com/ethereum/execution-spec-tests/blob/96efd737b258eeb8efb615e9123d931b6dfda302/src/cli/gentest.py) is a really nice tool that can generate and write a Python (pytest) test module to disk given a type 0 transaction hash on a live network....
Currently, evm code is written as a hex string in the generated test. This could be made more readable by converting the bytecode to the `Opcodes` mini-lang using `evm_bytes` (as...
[Jinja2](https://jinja.palletsprojects.com/en/3.1.x/) is a very powerful templating library that we started using in the doc flow for the generated "Test Case Reference" output pages, see #801 and `./docs/templates`. I think that...