Skip to content

Commit

Permalink
beacon/light/sync: basic tests for rangeLock (ethereum#30269)
Browse files Browse the repository at this point in the history
adds simple tests for lock and firstUnlocked method from rangeLock
type

---------

Co-authored-by: lightclient <[email protected]>
  • Loading branch information
2 people authored and zfy0701 committed Dec 3, 2024
1 parent 8b79c41 commit f75beac
Showing 1 changed file with 28 additions and 0 deletions.
28 changes: 28 additions & 0 deletions beacon/light/sync/update_sync_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,34 @@ func TestUpdateSyncDifferentHeads(t *testing.T) {
chain.ExpNextSyncPeriod(t, 17)
}

func TestRangeLock(t *testing.T) {
r := make(rangeLock)

// Lock from 0 to 99.
r.lock(0, 100, 1)
for i := 0; i < 100; i++ {
if v, ok := r[uint64(i)]; v <= 0 || !ok {
t.Fatalf("integer space: %d not locked", i)
}
}

// Unlock from 0 to 99.
r.lock(0, 100, -1)
for i := 0; i < 100; i++ {
if v, ok := r[uint64(i)]; v > 0 || ok {
t.Fatalf("integer space: %d is locked", i)
}
}

// Lock from 0 to 99 then unlock from 10 to 59.
r.lock(0, 100, 1)
r.lock(10, 50, -1)
first, count := r.firstUnlocked(0, 100)
if first != 10 || count != 50 {
t.Fatalf("unexpected first: %d or count: %d", first, count)
}
}

func testRespUpdate(request requestWithID) request.Response {
var resp RespUpdates
if request.request == nil {
Expand Down

0 comments on commit f75beac

Please sign in to comment.