These integration tests currently available for Goerli testnet must run as non-regression suite
% pip3 install -r requirements.txt
Currently, json-diff
and json-patch-jsondiff
are also required:
% sudo apt update
% sudo apt install npm
% npm install -g json-diff
% sudo apt install python3-jsonpatch
% brew update
% brew install node
% npm install -g json-diff
% python3 ./run_tests.py -c -k jwt.hex -b <chain>
% python3 ./run_tests.py -h
Usage: ./run_tests.py:
Launch an automated test sequence on Silkworm RpcDaemon (aka Silkrpc) or Erigon RpcDaemon
-h,--help: print this help
-f,--display-only-fail: shows only failed tests (not Skipped)
-v,--verbose: <verbose_level>
-c,--continue: runs all tests even if one test fails [default: exit at first test fail]
-l,--loops: <number of loops>
-b,--blockchain: [default: goerli]
-s,--start-from-test: <test_number>: run tests starting from input
-t,--run-single-test: <test_number>: run single test
-d,--compare-erigon-rpcdaemon: send requests also to the reference daemon e.g.: Erigon RpcDaemon
-w,--websocket: use websocket
-k,--jwt: authentication token file
-a,--api-list: <apis>: run all tests of the specified API (e.g.: eth_call,eth_getLogs,debug_)
-x,--exclude-api-list: exclude API list (e.g.: txpool_content,txpool_status,engine_)
-X,--exclude-test-list: exclude test list (e.g.: 18,22)
-o,--dump-response: dump JSON RPC response
-H,--host: host where the RpcDaemon is located (e.g.: 10.10.2.3)
-p,--port: port where the RpcDaemon is located (e.g.: 8545)
-r,--erigon-rpcdaemon: connect to Erigon RpcDaemon [default: connect to Silkrpc]
-e,--verify-external-provider: <provider_url> send any request also to external API endpoint as reference
-i,--without-compare-results: send request without compare results
% ./run_tests.py -b mainnet -d -c -v 1
Runs all tests on main net chain comparing Silkrpc response with rpcdaemon response, printing each test result
% ./run_tests.py -b mainnet -c -v 1
Runs all tests on main net chain comparing silkrpc response to response saved on json file, printing each test result
% ./run_tests.py -b mainnet -c -a eth_call
Runs all tests of eth_call on main net chain comparing silkrpc response with saved json file, printing only failed tests
% ./run_tests.py -b mainnet -r -c -a eth_call -t 1
Runs test 1 of eth_call on main net chain comparing rpcdaemon response to saved json file, printing only failed tests
% ./run_tests.py -b mainnet -r -c -t 20 -v 1
Runs test number 20 in main net chain using rpcdaemon and compare result with json file, printing each test result
% ./run_tests.py -b mainnet -d -c -X 20 -v 1
Runs all tests (excluding test number 20) on main net chain comparing silkrpc response with rpcdaemon response, printing each test result
% ./run_tests.py -b mainnet -d -c -x eth_call -v 1
Runs all tests (excluding eth_call tests) on main net chain comparing silkrpc response with rpcdaemon response, printing each test result