221e6c9e2f
* Nimbus folder environment update details: * Integrated `CoreDbRef` for the sources in the `nimbus` sub-folder. * The `nimbus` program does not compile yet as it needs the updates in the parallel `stateless` sub-folder. * Stateless environment update details: * Integrated `CoreDbRef` for the sources in the `stateless` sub-folder. * The `nimbus` program compiles now. * Premix environment update details: * Integrated `CoreDbRef` for the sources in the `premix` sub-folder. * Fluffy environment update details: * Integrated `CoreDbRef` for the sources in the `fluffy` sub-folder. * Tools environment update details: * Integrated `CoreDbRef` for the sources in the `tools` sub-folder. * Nodocker environment update details: * Integrated `CoreDbRef` for the sources in the `hive_integration/nodocker` sub-folder. * Tests environment update details: * Integrated `CoreDbRef` for the sources in the `tests` sub-folder. * The unit tests compile and run cleanly now. * Generalise `CoreDbRef` to any `select_backend` supported database why: Generalisation was just missed due to overcoming some compiler oddity which was tied to rocksdb for testing. * Suppress compiler warning for `newChainDB()` why: Warning was added to this function which must be wrapped so that any `CatchableError` is re-raised as `Defect`. * Split off persistent `CoreDbRef` constructor into separate file why: This allows to compile a memory only database version without linking the backend library. * Use memory `CoreDbRef` database by default detail: Persistent DB constructor needs to import `db/core_db/persistent why: Most tests use memory DB anyway. This avoids linking `-lrocksdb` or any other backend by default. * fix `toLegacyBackend()` availability check why: got garbled after memory/persistent split. * Clarify raw access to MPT for snap sync handler why: Logically, `kvt` is not the raw access for the hexary trie (although this holds for the legacy database) |
||
---|---|---|
.. | ||
testdata | ||
config.nim | ||
config.nims | ||
evmstate.nim | ||
evmstate_test.nim | ||
helpers.nim | ||
readme.md |
readme.md
EVM state test tool
The evmstate
tool to execute state test.
Build instructions
There are few options to build evmstate
tool like any other nimbus tools.
- Use your system Nim compiler(v1.6.12) and git to install dependencies.
$> git submodule update --init --recursive $> ./env.sh (run once to generate nimbus-build-system.paths) $> nim c -d:release tools/evmstate/evmstate $> nim c -r -d:release tools/evmstate/evmstate_test
- Use nimbus shipped Nim compiler and dependencies.
$> make update deps $> ./env.sh nim c -d:release tools/evmstate/evmstate $> ./env.sh nim c -r -d:release tools/evmstate/evmstate_test
- Use nimbus makefile.
$> make update $> make evmstate $> make evmstate_test
Command line params
Available command line params
Usage:
evmstate [OPTIONS]... <inputFile>
<inputFile> json file contains state test data.
The following options are available:
--dump dumps the state after the run [=false].
--json output trace logs in machine readable format (json) [=false].
--debug output full trace logs [=false].
--nomemory disable memory output [=true].
--nostack disable stack output [=false].
--nostorage disable storage output [=false].
--noreturndata enable return data output [=true].
--fork choose which fork to be tested.
--index if index is unset, all subtest in the fork will be tested [=none(int)].
--pretty pretty print the trace result [=false].
--verbosity sets the verbosity level [=0].
0 = silent, 1 = error, 2 = warn, 3 = info, 4 = debug, 5 = detail.