Skip to content

Commit 9c6d247

Browse files
committed
reference tests fix and a little cleanup
Signed-off-by: garyschulte <garyschulte@gmail.com>
1 parent d97d425 commit 9c6d247

File tree

4 files changed

+16
-4
lines changed

4 files changed

+16
-4
lines changed

ethereum/evmtool/src/main/java/org/hyperledger/besu/evmtool/StateTestSubCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ private void traceTestSpecs(final String test, final List<GeneralStateTestCaseEi
260260
}
261261
}
262262
worldStateUpdater.commit();
263-
worldState.freeze();
263+
worldState.persist(blockHeader);
264264

265265
summaryLine.put("output", result.getOutput().toUnprefixedHexString());
266266
final long gasUsed = transaction.getGasLimit() - result.getGasRemaining();

ethereum/evmtool/src/test/resources/org/hyperledger/besu/evmtool/state-test/blockhash.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@
6161
"post": {
6262
"Shanghai": [
6363
{
64-
"hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
64+
"hash": "0xd14c10ed22a1cfb642e374be985ac581c39f3969bd59249e0405aca3beb47a47",
6565
"logs": "0x0000000000000000000000000000000000000000000000000000000000000000",
6666
"indexes": {
6767
"data": 0,
@@ -101,4 +101,4 @@
101101
{"pc":83,"op":62,"gas":"0x79bc18","gasCost":"0x0","memSize":0,"stack":["0x0","0x1","0x1","0x2","0x2","0xffff","0x1f4","0x78859e5b97166c486532b1595a673e9f9073643f1b519c6f18511b9913","0x2","0x389","0x0","0x0","0x1","0x0","0x3e3d6d5ff042148d326c1898713a76759ca273","0xb94f5374fce5edbc8e2a8697c15331677e6ebf1b"],"depth":1,"refund":0,"opName":"RETURNDATACOPY","error":"Out of bounds"},
102102
{"output":"","gasUsed":"0x7a1200","test":"00000936-mixed-1","fork":"Shanghai","d":0,"g":0,"v":0,"postHash":"0xd14c10ed22a1cfb642e374be985ac581c39f3969bd59249e0405aca3beb47a47","postLogsHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","pass":false}
103103
]
104-
}
104+
}

ethereum/referencetests/src/main/java/org/hyperledger/besu/ethereum/referencetests/GeneralStateTestCaseSpec.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@
1717

1818
import org.hyperledger.besu.datatypes.Hash;
1919
import org.hyperledger.besu.ethereum.core.BlockHeader;
20+
import org.hyperledger.besu.ethereum.core.BlockHeaderBuilder;
21+
import org.hyperledger.besu.ethereum.core.BlockHeaderFunctions;
2022
import org.hyperledger.besu.ethereum.core.Transaction;
23+
import org.hyperledger.besu.ethereum.mainnet.MainnetBlockHeaderFunctions;
2124

2225
import java.util.ArrayList;
2326
import java.util.LinkedHashMap;
@@ -37,6 +40,7 @@
3740
public class GeneralStateTestCaseSpec {
3841

3942
private final Map<String, List<GeneralStateTestCaseEipSpec>> finalStateSpecs;
43+
private static final BlockHeaderFunctions MAINNET_FUNCTIONS = new MainnetBlockHeaderFunctions();
4044

4145
@JsonCreator
4246
public GeneralStateTestCaseSpec(
@@ -49,7 +53,7 @@ public GeneralStateTestCaseSpec(
4953
}
5054

5155
private Map<String, List<GeneralStateTestCaseEipSpec>> generate(
52-
final BlockHeader blockHeader,
56+
final BlockHeader rawBlockHeader,
5357
final ReferenceTestWorldState initialWorldState,
5458
final Map<String, List<PostSection>> postSections,
5559
final StateTestVersionedTransaction versionedTransaction) {
@@ -62,6 +66,11 @@ private Map<String, List<GeneralStateTestCaseEipSpec>> generate(
6266
final List<PostSection> post = entry.getValue();
6367
final List<GeneralStateTestCaseEipSpec> specs = new ArrayList<>(post.size());
6468
for (final PostSection p : post) {
69+
final BlockHeader blockHeader =
70+
BlockHeaderBuilder.fromHeader(rawBlockHeader)
71+
.stateRoot(p.rootHash)
72+
.blockHeaderFunctions(MAINNET_FUNCTIONS)
73+
.buildBlockHeader();
6574
final Supplier<Transaction> txSupplier = () -> versionedTransaction.get(p.indexes);
6675
specs.add(
6776
new GeneralStateTestCaseEipSpec(

ethereum/referencetests/src/reference-test/java/org/hyperledger/besu/ethereum/vm/GeneralStateReferenceTestTools.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,10 @@
2121
import org.hyperledger.besu.datatypes.Wei;
2222
import org.hyperledger.besu.ethereum.core.BlockHeader;
2323
import org.hyperledger.besu.ethereum.core.BlockHeaderBuilder;
24+
import org.hyperledger.besu.ethereum.core.BlockHeaderFunctions;
2425
import org.hyperledger.besu.ethereum.core.MutableWorldState;
2526
import org.hyperledger.besu.ethereum.core.Transaction;
27+
import org.hyperledger.besu.ethereum.mainnet.MainnetBlockHeaderFunctions;
2628
import org.hyperledger.besu.ethereum.mainnet.MainnetTransactionProcessor;
2729
import org.hyperledger.besu.ethereum.mainnet.ProtocolSpec;
2830
import org.hyperledger.besu.ethereum.mainnet.TransactionValidationParams;
@@ -179,6 +181,7 @@ public static void executeTest(final GeneralStateTestCaseEipSpec spec) {
179181
worldStateUpdater.deleteAccount(coinbase.getAddress());
180182
}
181183
worldStateUpdater.commit();
184+
worldState.persist(blockHeader);
182185

183186
// Check the world state root hash.
184187
final Hash expectedRootHash = spec.getExpectedRootHash();

0 commit comments

Comments
 (0)