Reproduce the fuzzyVM from Go-ethereum team for comparison.
1 | # Clone the repo to a place of your liking using |
Check func (g *GstMaker) Fill(traceOutput io.Writer)
in FuzzyVM/fuzzer/fuzzer.go
1 | // Fuzz is the entry point for go-fuzz |
Fill
is in goevmlab/fuzzing/statetest_maker.go
1 | func (g *GstMaker) Fill(traceOutput io.Writer) error { |
RunNoVerify
is located in go-ethereum@1.14.3/tests/state_test_util.go
.
1 | func (t *StateTest) RunNoVerify(subtest StateSubtest, vmconfig vm.Config, snapshotter bool, scheme string) (st StateTestState, root common.Hash, err error) { |
It seems that fuzzyVM only run geth
, instead of differential testing with other EVM implementations. So I will re-compile fuzzyVM with (url) to get coverage.
This job is time-consuming, moving to the server…
We have 40 workers on the server while 6 workers in wsl.
1 | go build -cover -o FuzzyVM-ins -coverpkg=github.com/ethereum/go-ethereum/core/vm,github.com/MariusVanDerWijden/FuzzyVM,github.com/ethereum/go-ethereum/common,github.com/ethereum/go-ethereum/core/rawdb,github.com/ethereum/go-ethereum/tests,github.com/ethereum/go-ethereum/common |
Filed an issue at github, not responding in 48H.
Another try in wsl.
1 | alleysira@LAPTOP-M4HO8L6S:~/FuzzyVM$ GOCOVERDIR=coverdata ./FuzzyVM-ins run |
Try exception handling mechanism later.