Hello,
I am trying to run retesteth against a custom client based on pre-merge geth v1.11.* that is utilising PoW consensus inside a private network.
I am writing because I feel that are some knowledge gaps of how to use it and hoping to get some help. Excuse me in advance if this is not the correct place.
Just for reference, I am running on the code on arm (M1 Pro).
Here are the steps that I am doing:
- Since I experienced various problem with docker the retest code is compiled locally using the instructions from https://github.com/ethereum/retesteth/blob/develop/circle.yml.
- Downloaded the test repo - https://github.com/ethereum/tests.
- I copied the evm binary from myCustomClient/build/bin/evm to $GOPATH/evm and am able to successfully run tests with the following command
- Started my node on localhost:8545
- Execute the test with the following command
./retesteth/build/retesteth/retesteth -t GeneralStateTests -- --testpath /tests --nodes 0.0.0.0:8545
So far so good, the tests run and 99% of them pass. What I am having trouble understanding is the following:
- Even if I stop my local node that is running on 0.0.0.0:8545 the tests still pass - does this mean that the tests are only executing against the evm binary and not against the client itself or perhaps there is a specific test suite that targets the functionality of the client ? Because of this I am not sure if I am doing the testing process correctly at all
- Configuration and forks: in ~/.retesteth I created a copy of the default config and changed
"socketType" : "tcp",
"socketAddress" : ["0.0.0.0:8545"]..
But I see there are also genesis files for specific forks - since I am using a private network starting from block 0 and a custom genesis - how can I specify that and be sure that I am executing the tests correctly?
I tried adding another genesis.json file in the config folder and also another supported fork in the config file under the forks and running the tests with
retesteth/build/retesteth/retesteth -t BlockchainTests -- \
--testpath $PWD/tests \
--nodes 0.0.0.0:8545 --clients myClient --singlenet myClientFork
but here the tests just run and in the end it says 0 had been run.
Full log here:
Retesteth config path: /Users/.retesteth
Active client configurations: 'myClient '
WARNING: ClientConfig (/Users/.retesteth/myClient/config) tmpDir location not found! Switching to default.
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "eips": (1 of 39)
33%...
66%...
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "example": (2 of 39)
50%...
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "vm": (3 of 39)
50%...
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "withdrawals": (4 of 39)
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcBlockGasLimitTest": (5 of 39)
20%...
40%...
60%...
80%...
100%
Skipping bcExploitTest because --all option is not specified.
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcForkStressTest": (7 of 39)
50%...
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcGasPricerTest": (8 of 39)
33%...
66%...
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcMultiChainTest": (9 of 39)
14%...
28%...
42%...
57%...
71%...
85%...
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcRandomBlockhashTest": (10 of 39)
25%...
50%...
75%...
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcStateTests": (11 of 39)
25%...
50%...
75%...
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcTotalDifficultyTest": (12 of 39)
18%...
36%...
54%...
72%...
90%...
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcUncleSpecialTests": (13 of 39)
25%...
50%...
75%...
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcUncleTest": (14 of 39)
25%...
50%...
75%...
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcValidBlockTest": (15 of 39)
21%...
42%...
63%...
84%...
100%
Skipping bcWalletTest because --all option is not specified.
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcExample": (17 of 39)
25%...
50%...
75%...
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcEIP1559": (18 of 39)
23%...
47%...
70%...
94%...
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcEIP3675": (19 of 39)
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcBlockGasLimitTest": (20 of 39)
100%
Skipping bcForgedTest because bigint exceptions run in progress!
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcInvalidHeaderTest": (22 of 39)
22%...
45%...
68%...
90%...
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcMultiChainTest": (23 of 39)
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcUncleHeaderValidity": (24 of 39)
24%...
48%...
72%...
96%...
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcUncleSpecialTests": (25 of 39)
22%...
44%...
66%...
88%...
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcUncleTest": (26 of 39)
21%...
43%...
65%...
86%...
100%
Filter: ' myClient'
WARNING: /Users/.myClient/end-to-end/tests/src/BlockchainTestsFiller/InvalidBlocks/bcExample does not exist!
WARNING: bcExample no tests detected in folder!
Running tests for config 'Ethereum GO on StateTool' 2
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcEIP1559": (28 of 39)
25%...
50%...
75%...
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcEIP3675": (29 of 39)
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bc4895-withdrawals": (30 of 39)
22%...
44%...
66%...
88%...
100%
Skipping bcExpectSection because --all option is not specified.
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcByzantiumToConstantinopleFix": (32 of 39)
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcEIP158ToByzantium": (33 of 39)
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcFrontierToHomestead": (34 of 39)
14%...
28%...
42%...
57%...
71%...
85%...
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcHomesteadToDao": (35 of 39)
25%...
50%...
75%...
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcHomesteadToEIP150": (36 of 39)
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcBerlinToLondon": (37 of 39)
33%...
66%...
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcArrowGlacierToMerge": (38 of 39)
33%...
66%...
100%
Filter: ' myClient'
Running tests for config 'Ethereum GO on StateTool' 2
Test Case "bcMergeToShanghai": (39 of 39)
100%
*** No errors detected
WARNING: Test folder /Users/.myClient/end-to-end/tests/src/BlockchainTestsFiller/InvalidBlocks/bcForgedTest appears to be unused!
*** Total Tests Run: 0
Not sure If I am using retesteth in the correct manner for testing a private network. Any help or materials/guidance will be appreciated.
Thank you in advance :)
Hello,
I am trying to run retesteth against a custom client based on pre-merge geth v1.11.* that is utilising PoW consensus inside a private network.
I am writing because I feel that are some knowledge gaps of how to use it and hoping to get some help. Excuse me in advance if this is not the correct place.
Just for reference, I am running on the code on arm (M1 Pro).
Here are the steps that I am doing:
./retesteth/build/retesteth/retesteth -t GeneralStateTests -- --testpath /tests --nodes 0.0.0.0:8545So far so good, the tests run and 99% of them pass. What I am having trouble understanding is the following:
But I see there are also genesis files for specific forks - since I am using a private network starting from block 0 and a custom genesis - how can I specify that and be sure that I am executing the tests correctly?
I tried adding another genesis.json file in the config folder and also another supported fork in the config file under the forks and running the tests with
but here the tests just run and in the end it says 0 had been run.
Full log here:
Not sure If I am using retesteth in the correct manner for testing a private network. Any help or materials/guidance will be appreciated.
Thank you in advance :)