Commit 633f2f66 authored by Andreas Bigger's avatar Andreas Bigger

Fix repeated position construction

parent e1f8f6a0
......@@ -22,12 +22,15 @@ import (
//go:embed test_data
var testData embed.FS
func PositionFromTraceIndex(provider *CannonTraceProvider, idx int) types.Position {
return types.NewPosition(int(provider.gameDepth), idx)
}
func TestGet(t *testing.T) {
dataDir, prestate := setupTestData(t)
t.Run("ExistingProof", func(t *testing.T) {
provider, generator := setupWithTestData(t, dataDir, prestate)
pos := types.NewPosition(int(provider.gameDepth), 0)
value, err := provider.Get(context.Background(), pos)
value, err := provider.Get(context.Background(), PositionFromTraceIndex(provider, 0))
require.NoError(t, err)
require.Equal(t, common.HexToHash("0x45fd9aa59768331c726e719e76aa343e73123af888804604785ae19506e65e87"), value)
require.Empty(t, generator.generated)
......@@ -40,8 +43,7 @@ func TestGet(t *testing.T) {
Step: 10,
Exited: true,
}
pos := types.NewPosition(int(provider.gameDepth), 7000)
value, err := provider.Get(context.Background(), pos)
value, err := provider.Get(context.Background(), PositionFromTraceIndex(provider, 7000))
require.NoError(t, err)
require.Contains(t, generator.generated, 7000, "should have tried to generate the proof")
stateHash, err := generator.finalState.EncodeWitness().StateHash()
......@@ -51,16 +53,14 @@ func TestGet(t *testing.T) {
t.Run("MissingPostHash", func(t *testing.T) {
provider, generator := setupWithTestData(t, dataDir, prestate)
pos := types.NewPosition(int(provider.gameDepth), 1)
_, err := provider.Get(context.Background(), pos)
_, err := provider.Get(context.Background(), PositionFromTraceIndex(provider, 1))
require.ErrorContains(t, err, "missing post hash")
require.Empty(t, generator.generated)
})
t.Run("IgnoreUnknownFields", func(t *testing.T) {
provider, generator := setupWithTestData(t, dataDir, prestate)
pos := types.NewPosition(int(provider.gameDepth), 2)
value, err := provider.Get(context.Background(), pos)
value, err := provider.Get(context.Background(), PositionFromTraceIndex(provider, 2))
require.NoError(t, err)
expected := common.HexToHash("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb")
require.Equal(t, expected, value)
......@@ -72,8 +72,7 @@ func TestGetStepData(t *testing.T) {
t.Run("ExistingProof", func(t *testing.T) {
dataDir, prestate := setupTestData(t)
provider, generator := setupWithTestData(t, dataDir, prestate)
pos := types.NewPosition(int(provider.gameDepth), 0)
value, proof, data, err := provider.GetStepData(context.Background(), pos)
value, proof, data, err := provider.GetStepData(context.Background(), PositionFromTraceIndex(provider, 0))
require.NoError(t, err)
expected := common.Hex2Bytes("b8f068de604c85ea0e2acd437cdb47add074a2d70b81d018390c504b71fe26f400000000000000000000000000000000000000000000000000000000000000000000000000")
require.Equal(t, expected, value)
......@@ -100,8 +99,7 @@ func TestGetStepData(t *testing.T) {
OracleValue: []byte{0xdd},
OracleOffset: 10,
}
pos := types.NewPosition(int(provider.gameDepth), 4)
preimage, proof, data, err := provider.GetStepData(context.Background(), pos)
preimage, proof, data, err := provider.GetStepData(context.Background(), PositionFromTraceIndex(provider, 4))
require.NoError(t, err)
require.Contains(t, generator.generated, 4, "should have tried to generate the proof")
......@@ -127,8 +125,7 @@ func TestGetStepData(t *testing.T) {
OracleValue: []byte{0xdd},
OracleOffset: 10,
}
pos := types.NewPosition(int(provider.gameDepth), 7000)
preimage, proof, data, err := provider.GetStepData(context.Background(), pos)
preimage, proof, data, err := provider.GetStepData(context.Background(), PositionFromTraceIndex(provider, 7000))
require.NoError(t, err)
require.Contains(t, generator.generated, 7000, "should have tried to generate the proof")
......@@ -154,8 +151,7 @@ func TestGetStepData(t *testing.T) {
OracleValue: []byte{0xdd},
OracleOffset: 10,
}
pos := types.NewPosition(int(provider.gameDepth), 7000)
_, _, _, err := provider.GetStepData(context.Background(), pos)
_, _, _, err := provider.GetStepData(context.Background(), PositionFromTraceIndex(provider, 7000))
require.NoError(t, err)
require.Contains(t, initGenerator.generated, 7000, "should have tried to generate the proof")
......@@ -170,7 +166,7 @@ func TestGetStepData(t *testing.T) {
StateData: []byte{0xbb},
ProofData: []byte{0xcc},
}
preimage, proof, data, err := provider.GetStepData(context.Background(), pos)
preimage, proof, data, err := provider.GetStepData(context.Background(), PositionFromTraceIndex(provider, 7000))
require.NoError(t, err)
require.Empty(t, generator.generated, "should not have to generate the proof again")
......@@ -182,8 +178,7 @@ func TestGetStepData(t *testing.T) {
t.Run("MissingStateData", func(t *testing.T) {
dataDir, prestate := setupTestData(t)
provider, generator := setupWithTestData(t, dataDir, prestate)
pos := types.NewPosition(int(provider.gameDepth), 1)
_, _, _, err := provider.GetStepData(context.Background(), pos)
_, _, _, err := provider.GetStepData(context.Background(), PositionFromTraceIndex(provider, 1))
require.ErrorContains(t, err, "missing state data")
require.Empty(t, generator.generated)
})
......@@ -191,8 +186,7 @@ func TestGetStepData(t *testing.T) {
t.Run("IgnoreUnknownFields", func(t *testing.T) {
dataDir, prestate := setupTestData(t)
provider, generator := setupWithTestData(t, dataDir, prestate)
pos := types.NewPosition(int(provider.gameDepth), 2)
value, proof, data, err := provider.GetStepData(context.Background(), pos)
value, proof, data, err := provider.GetStepData(context.Background(), PositionFromTraceIndex(provider, 2))
require.NoError(t, err)
expected := common.Hex2Bytes("cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc")
require.Equal(t, expected, value)
......
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