mirror of
https://github.com/OffchainLabs/prysm.git
synced 2026-01-06 22:23:56 -05:00
**What type of PR is this?** Feature **What does this PR do? Why is it needed?** Adds data column support to backfill. **Acknowledgements** - [x] I have read [CONTRIBUTING.md](https://github.com/prysmaticlabs/prysm/blob/develop/CONTRIBUTING.md). - [x] I have included a uniquely named [changelog fragment file](https://github.com/prysmaticlabs/prysm/blob/develop/CONTRIBUTING.md#maintaining-changelogmd). - [x] I have added a description to this PR with sufficient context for reviewers to understand this PR. --------- Co-authored-by: Kasey <kasey@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Preston Van Loon <preston@pvl.dev>
43 lines
1.1 KiB
Go
43 lines
1.1 KiB
Go
package backfill
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/OffchainLabs/prysm/v7/consensus-types/primitives"
|
|
"github.com/OffchainLabs/prysm/v7/testing/require"
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
func TestSortBatchDesc(t *testing.T) {
|
|
orderIn := []primitives.Slot{100, 10000, 1}
|
|
orderOut := []primitives.Slot{10000, 100, 1}
|
|
batches := make([]batch, len(orderIn))
|
|
for i := range orderIn {
|
|
batches[i] = batch{end: orderIn[i]}
|
|
}
|
|
sortBatchDesc(batches)
|
|
for i := range orderOut {
|
|
require.Equal(t, orderOut[i], batches[i].end)
|
|
}
|
|
}
|
|
|
|
func TestWaitUntilReady(t *testing.T) {
|
|
wur := batchBlockUntil
|
|
|
|
var got time.Duration
|
|
var errDerp = errors.New("derp")
|
|
batchBlockUntil = func(_ context.Context, ur time.Duration, _ batch) error {
|
|
got = ur
|
|
return errDerp
|
|
}
|
|
|
|
b := batch{}.withRetryableError(errors.New("test error"))
|
|
require.ErrorIs(t, b.waitUntilReady(t.Context()), errDerp)
|
|
require.Equal(t, true, retryDelay-time.Until(b.retryAfter) < time.Millisecond)
|
|
require.Equal(t, true, got < retryDelay && got > retryDelay-time.Millisecond)
|
|
require.Equal(t, 1, b.retries)
|
|
batchBlockUntil = wur
|
|
}
|