From 3bd732f9c4731c7617bf84216a2f3fcfddf845ae Mon Sep 17 00:00:00 2001 From: fengou1 <85682690+fengou1@users.noreply.github.com> Date: Wed, 22 Dec 2021 11:19:47 +0800 Subject: [PATCH] br: improve backoff unit test (#30892) --- br/pkg/utils/backoff_test.go | 40 ++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) 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)) +}