Commit 18d81ef6 authored by inphi's avatar inphi

Fix FuzzPreimageRead flakes

parent c32d741a
...@@ -30,8 +30,8 @@ fuzz: ...@@ -30,8 +30,8 @@ fuzz:
go test -run NOTAREALTEST -v -fuzztime 10s -fuzz=FuzzStateSyscallExitGroup ./mipsevm go test -run NOTAREALTEST -v -fuzztime 10s -fuzz=FuzzStateSyscallExitGroup ./mipsevm
go test -run NOTAREALTEST -v -fuzztime 10s -fuzz=FuzzStateSyscallFnctl ./mipsevm go test -run NOTAREALTEST -v -fuzztime 10s -fuzz=FuzzStateSyscallFnctl ./mipsevm
go test -run NOTAREALTEST -v -fuzztime 10s -fuzz=FuzzStateHintRead ./mipsevm go test -run NOTAREALTEST -v -fuzztime 10s -fuzz=FuzzStateHintRead ./mipsevm
go test -run NOTAREALTEST -v -fuzztime 10s -fuzz=FuzzStateHintWrite ./mipsevm
go test -run NOTAREALTEST -v -fuzztime 20s -fuzz=FuzzStatePreimageRead ./mipsevm go test -run NOTAREALTEST -v -fuzztime 20s -fuzz=FuzzStatePreimageRead ./mipsevm
go test -run NOTAREALTEST -v -fuzztime 10s -fuzz=FuzzStateHintWrite ./mipsevm
go test -run NOTAREALTEST -v -fuzztime 20s -fuzz=FuzzStatePreimageWrite ./mipsevm go test -run NOTAREALTEST -v -fuzztime 20s -fuzz=FuzzStatePreimageWrite ./mipsevm
.PHONY: \ .PHONY: \
......
...@@ -355,12 +355,12 @@ func FuzzStatePreimageRead(f *testing.F) { ...@@ -355,12 +355,12 @@ func FuzzStatePreimageRead(f *testing.F) {
state.Memory.SetMemory(0, syscallInsn) state.Memory.SetMemory(0, syscallInsn)
preStatePreimageKey := state.PreimageKey preStatePreimageKey := state.PreimageKey
preStateRoot := state.Memory.MerkleRoot() preStateRoot := state.Memory.MerkleRoot()
toWrite := count writeLen := count
if toWrite > 4 { if writeLen > 4 {
toWrite = 4 writeLen = 4
} }
if preimageOffset+toWrite > uint32(8+len(preimageData)) { if preimageOffset+writeLen > uint32(8+len(preimageData)) {
toWrite = uint32(8+len(preimageData)) - preimageOffset writeLen = uint32(8+len(preimageData)) - preimageOffset
} }
oracle := staticOracle(t, preimageData) oracle := staticOracle(t, preimageData)
...@@ -376,10 +376,12 @@ func FuzzStatePreimageRead(f *testing.F) { ...@@ -376,10 +376,12 @@ func FuzzStatePreimageRead(f *testing.F) {
require.Equal(t, uint32(0), state.Heap) require.Equal(t, uint32(0), state.Heap)
require.Equal(t, uint8(0), state.ExitCode) require.Equal(t, uint8(0), state.ExitCode)
require.Equal(t, false, state.Exited) require.Equal(t, false, state.Exited)
if toWrite > 0 { if writeLen > 0 {
require.NotEqual(t, preStateRoot, state.Memory.MerkleRoot()) // Memory may be unchanged if we're writing the first zero-valued 7 bytes of the pre-image.
//require.NotEqual(t, preStateRoot, state.Memory.MerkleRoot())
require.Greater(t, state.PreimageOffset, preimageOffset) require.Greater(t, state.PreimageOffset, preimageOffset)
} else { } else {
require.Equal(t, preStateRoot, state.Memory.MerkleRoot())
require.Equal(t, state.PreimageOffset, preimageOffset) require.Equal(t, state.PreimageOffset, preimageOffset)
} }
require.Equal(t, uint64(1), state.Step) require.Equal(t, uint64(1), state.Step)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment