diff --git a/src/restic/backend/s3/s3_test.go b/src/restic/backend/s3/s3_test.go index 12ca73a10..7d080063a 100644 --- a/src/restic/backend/s3/s3_test.go +++ b/src/restic/backend/s3/s3_test.go @@ -103,6 +103,21 @@ type MinioTestConfig struct { stopServer func() } +func openS3(t testing.TB, cfg MinioTestConfig) (be restic.Backend, err error) { + for i := 0; i < 10; i++ { + be, err = s3.Open(cfg.Config) + if err != nil { + t.Logf("s3 open: try %d: error %v", i, err) + time.Sleep(500 * time.Millisecond) + continue + } + + break + } + + return be, err +} + func newMinioTestSuite(ctx context.Context, t testing.TB) *test.Suite { return &test.Suite{ // NewConfig returns a config for a new temporary backend that will be used in tests. @@ -127,7 +142,7 @@ func newMinioTestSuite(ctx context.Context, t testing.TB) *test.Suite { Create: func(config interface{}) (restic.Backend, error) { cfg := config.(MinioTestConfig) - be, err := s3.Open(cfg.Config) + be, err := openS3(t, cfg) if err != nil { return nil, err }