Official ethereum/tests StateTests execution#382
Conversation
ChihChengLiang
left a comment
There was a problem hiding this comment.
Do we intend to check in code.cache and result.cache? Or should we ignore them?
…circuits into evm-testvectors
…circuits into evm-testvectors
Hi @ChihChengLiang, I absoutely forgot to anwser you comment, sorry! Those files are just kept to speed up testing process and to check diffs between executions. Maybe we could make a quick meeting with you and @ed255 about how we can improve and make this tests better before a review, starting september? Happy to share some ideas I have :) |
|
@adria0 Yeah, sure. We can have a meeting when you and Edu are back. |
Sounds good to me! |
|
replaced by #748 |
Integrate the "official" EVM tests located in https://github.com/ethereum/tests
Since we are running our own geth executor to generate the traces, we are using the
/srcfolder and not the retesteth filled tests (located in/BlockchainTestsand/GeneralStateTests).The basic roadmap for this PR is
sstorecircuit #383 feat: bus mapping for sload and sstore #436Calldatacopy::gen_associated_ops#443ExecutionState::STOP#419ExecutionState::CALL#278Note for reviewers
You will find in this PR:
A binary in
evm-testvectors/src/main.rsthatevm-testvectors/testfolder that is a git submodulejsonand.yamlcode.cachefiledockerfolder)results.cachefile, but skips some testsOPCODES_UNIMPLEMENTEDconst) via scanning the geth traceStateTestConfig)geth-utils/lib/lib.goto skip very big traces (geth crashed)FILE_IGNORE_LIST)results.cachefileEnrich
Bytecodeby adding adisasm() -> Stringmethod as also aniter()that generates an iterator over the bytecode Opcodes. From my previous experience running those tests there are is a lot of cases that you have to analyze and test the code, and I created a small command line tool for generating on-the-fly tests using assembly/bytecode as also to parse bytecode (see--rawoption inmain.rs)note that this is a first version, probally this is going to change, and eventually we have to move this into a specific repo, but for the moment I prefer to merge this to not having code far from origin/main
note2 this code is not critical at this point, so a light review could be done IMO