mirror of
https://github.com/kopia/kopia.git
synced 2026-03-13 03:36:34 -04:00
testing: retry around B2 test
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user