diff --git a/br/pkg/utils/backoff_test.go b/br/pkg/utils/backoff_test.go index 9ee312f24feab..b0c0f640ab677 100644 --- a/br/pkg/utils/backoff_test.go +++ b/br/pkg/utils/backoff_test.go @@ -123,3 +123,43 @@ func TestPdBackoffWithRetryableError(t *testing.T) { gRPCError, }, multierr.Errors(err)) } + +func TestNewImportSSTBackofferWithSucess(t *testing.T) { + t.Parallel() + + var counter int + backoffer := utils.NewImportSSTBackoffer() + err := utils.WithRetry(context.Background(), func() error { + defer func() { counter++ }() + if counter == 15 { + return nil + } else { + return berrors.ErrKVDownloadFailed + } + }, backoffer) + require.Equal(t, 16, counter) + require.Nil(t, err) +} + +func TestNewDownloadSSTBackofferWithCancel(t *testing.T) { + t.Parallel() + + var counter int + backoffer := utils.NewDownloadSSTBackoffer() + err := utils.WithRetry(context.Background(), func() error { + defer func() { counter++ }() + if counter == 3 { + return context.Canceled + } else { + return berrors.ErrKVIngestFailed + } + + }, backoffer) + require.Equal(t, 4, counter) + require.Equal(t, []error{ + berrors.ErrKVIngestFailed, + berrors.ErrKVIngestFailed, + berrors.ErrKVIngestFailed, + context.Canceled, + }, multierr.Errors(err)) +}