Skip to content

Commit

Permalink
add tests
Browse files Browse the repository at this point in the history
  • Loading branch information
jonastheis committed Jan 29, 2025
1 parent 74046dd commit 44c72cd
Showing 1 changed file with 76 additions and 0 deletions.
76 changes: 76 additions & 0 deletions core/rawdb/accessors_l1_message_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import (
"math/big"
"testing"

"github.com/stretchr/testify/require"

"github.com/scroll-tech/go-ethereum/common"
"github.com/scroll-tech/go-ethereum/core/types"
)
Expand Down Expand Up @@ -157,3 +159,77 @@ func TestIterationStopsAtMaxQueueIndex(t *testing.T) {
t.Fatal("Invalid length", "expected", 3, "got", len(got))
}
}

func TestIterateL1MessagesV1From(t *testing.T) {
msgs := []types.L1MessageTx{
newL1MessageTx(100),
newL1MessageTx(101),
newL1MessageTx(102),
newL1MessageTx(103),
newL1MessageTx(104),
}

db := NewMemoryDatabase()
WriteL1Messages(db, msgs)
WriteL1MessageV2StartIndex(db, 103)

it := IterateL1MessagesV1From(db, 100)
defer it.Release()

for _, msg := range msgs {
if msg.QueueIndex < 103 {
require.True(t, it.Next(), "Iterator terminated early")
require.Equal(t, msg.QueueIndex, it.L1Message().QueueIndex, "Invalid result")
} else {
require.Falsef(t, it.Next(), "Iterator did not terminate, queueIndex %d", msg.QueueIndex)
}
}

finished := !it.Next()
if !finished {
t.Fatal("Iterator did not terminate")
}
}

func TestIterateL1MessagesV2From(t *testing.T) {
msgs := []types.L1MessageTx{
newL1MessageTx(100),
newL1MessageTx(101),
newL1MessageTx(102),
newL1MessageTx(103),
newL1MessageTx(104),
}

db := NewMemoryDatabase()
WriteL1Messages(db, msgs)

// no L1MessageV2 in the database
{
it := IterateL1MessagesV2From(db, 100)
require.Falsef(t, it.Next(), "Iterator did not terminate")
it.Release()
}

WriteL1MessageV2StartIndex(db, 103)
// L1MessageV2 in the database starting from 103 -> no iteration
{
it := IterateL1MessagesV2From(db, 100)
require.Falsef(t, it.Next(), "Iterator did not terminate")
it.Release()
}

it := IterateL1MessagesV2From(db, 103)
defer it.Release()

for _, msg := range msgs {
if msg.QueueIndex >= 103 {
require.True(t, it.Next(), "Iterator terminated early")
require.Equal(t, msg.QueueIndex, it.L1Message().QueueIndex, "Invalid result")
}
}

finished := !it.Next()
if !finished {
t.Fatal("Iterator did not terminate")
}
}

0 comments on commit 44c72cd

Please sign in to comment.