testing: retry around B2 test

This commit is contained in:
Jarek Kowalski
2020-03-31 08:05:58 -07:00
parent 567bd33e8a
commit 05ea35fcff

View File

@@ -9,6 +9,7 @@
"time"
"github.com/kopia/kopia/internal/blobtesting"
"github.com/kopia/kopia/internal/testutil"
"github.com/kopia/kopia/repo/blob"
"github.com/kopia/kopia/repo/blob/b2"
)
@@ -33,41 +34,43 @@ func TestB2Storage(t *testing.T) {
bucket := getEnvOrSkip(t, testBucketEnv)
keyID := getEnvOrSkip(t, testKeyIDEnv)
key := getEnvOrSkip(t, testKeyEnv)
testutil.Retry(t, func(t *testutil.RetriableT) {
data := make([]byte, 8)
rand.Read(data) //nolint:errcheck
data := make([]byte, 8)
rand.Read(data) //nolint:errcheck
ctx := context.Background()
st, err := b2.New(ctx, &b2.Options{
BucketName: bucket,
KeyID: keyID,
Key: key,
Prefix: fmt.Sprintf("test-%v-%x-", time.Now().Unix(), data),
ctx := context.Background()
st, err := b2.New(ctx, &b2.Options{
BucketName: bucket,
KeyID: keyID,
Key: key,
Prefix: fmt.Sprintf("test-%v-%x-", time.Now().Unix(), data),
})
if err != nil {
t.Fatalf("unable to build b2 storage: %v", err)
}
if err := st.ListBlobs(ctx, "", func(bm blob.Metadata) error {
return st.DeleteBlob(ctx, bm.BlobID)
}); err != nil {
t.Fatalf("unable to clear b2 bucket: %v", err)
}
blobtesting.VerifyStorage(ctx, t, st)
blobtesting.AssertConnectionInfoRoundTrips(ctx, t, st)
// delete everything again
if err := st.ListBlobs(ctx, "", func(bm blob.Metadata) error {
return st.DeleteBlob(ctx, bm.BlobID)
}); err != nil {
t.Fatalf("unable to clear b2 bucket: %v", err)
}
if err := st.Close(ctx); err != nil {
t.Fatalf("err: %v", err)
}
})
if err != nil {
t.Fatalf("unable to build b2 storage: %v", err)
}
if err := st.ListBlobs(ctx, "", func(bm blob.Metadata) error {
return st.DeleteBlob(ctx, bm.BlobID)
}); err != nil {
t.Fatalf("unable to clear b2 bucket: %v", err)
}
blobtesting.VerifyStorage(ctx, t, st)
blobtesting.AssertConnectionInfoRoundTrips(ctx, t, st)
// delete everything again
if err := st.ListBlobs(ctx, "", func(bm blob.Metadata) error {
return st.DeleteBlob(ctx, bm.BlobID)
}); err != nil {
t.Fatalf("unable to clear b2 bucket: %v", err)
}
if err := st.Close(ctx); err != nil {
t.Fatalf("err: %v", err)
}
}
func TestB2StorageInvalidBlob(t *testing.T) {