mirror of
https://github.com/restic/restic.git
synced 2025-12-08 06:09:56 +00:00
Update github.com/kurin/blazer to 0.2.2
This commit is contained in:
parent
be02008025
commit
842fe43590
11 changed files with 240 additions and 24 deletions
91
vendor/github.com/kurin/blazer/b2/integration_test.go
generated
vendored
91
vendor/github.com/kurin/blazer/b2/integration_test.go
generated
vendored
|
|
@ -735,14 +735,21 @@ func TestWriteEmpty(t *testing.T) {
|
|||
type rtCounter struct {
|
||||
rt http.RoundTripper
|
||||
trips int
|
||||
api string
|
||||
sync.Mutex
|
||||
}
|
||||
|
||||
func (rt *rtCounter) RoundTrip(r *http.Request) (*http.Response, error) {
|
||||
rt.Lock()
|
||||
defer rt.Unlock()
|
||||
rt.trips++
|
||||
return rt.rt.RoundTrip(r)
|
||||
resp, err := rt.rt.RoundTrip(r)
|
||||
if err != nil {
|
||||
return resp, err
|
||||
}
|
||||
if rt.api == "" || r.Header.Get("X-Blazer-Method") == rt.api {
|
||||
rt.trips++
|
||||
}
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
func TestAttrsNoRoundtrip(t *testing.T) {
|
||||
|
|
@ -786,6 +793,66 @@ func TestAttrsNoRoundtrip(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
/*func TestAttrsFewRoundtrips(t *testing.T) {
|
||||
rt := &rtCounter{rt: defaultTransport}
|
||||
defaultTransport = rt
|
||||
defer func() {
|
||||
defaultTransport = rt.rt
|
||||
}()
|
||||
|
||||
ctx := context.Background()
|
||||
ctx, cancel := context.WithTimeout(ctx, 10*time.Minute)
|
||||
defer cancel()
|
||||
|
||||
bucket, done := startLiveTest(ctx, t)
|
||||
defer done()
|
||||
|
||||
_, _, err := writeFile(ctx, bucket, smallFileName, 42, 1e8)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
o := bucket.Object(smallFileName)
|
||||
trips := rt.trips
|
||||
attrs, err := o.Attrs(ctx)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if attrs.Name != smallFileName {
|
||||
t.Errorf("got the wrong object: got %q, want %q", attrs.Name, smallFileName)
|
||||
}
|
||||
|
||||
if trips != rt.trips {
|
||||
t.Errorf("Attrs(): too many round trips, got %d, want 1", rt.trips-trips)
|
||||
}
|
||||
}*/
|
||||
|
||||
func TestSmallUploadsFewRoundtrips(t *testing.T) {
|
||||
rt := &rtCounter{rt: defaultTransport, api: "b2_get_upload_url"}
|
||||
defaultTransport = rt
|
||||
defer func() {
|
||||
defaultTransport = rt.rt
|
||||
}()
|
||||
|
||||
ctx := context.Background()
|
||||
ctx, cancel := context.WithTimeout(ctx, 10*time.Minute)
|
||||
defer cancel()
|
||||
|
||||
bucket, done := startLiveTest(ctx, t)
|
||||
defer done()
|
||||
|
||||
for i := 0; i < 10; i++ {
|
||||
_, _, err := writeFile(ctx, bucket, fmt.Sprintf("%s.%d", smallFileName, i), 42, 1e8)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
if rt.trips > 3 {
|
||||
// Pool is not guaranteed to be valid, so 3 calls allows some slack.
|
||||
t.Errorf("too many calls to b2_get_upload_url: got %d, want < 3", rt.trips)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDeleteWithoutName(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
ctx, cancel := context.WithTimeout(ctx, 10*time.Minute)
|
||||
|
|
@ -804,6 +871,26 @@ func TestDeleteWithoutName(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestListUnfinishedLargeFiles(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
bucket, done := startLiveTest(ctx, t)
|
||||
defer done()
|
||||
|
||||
w := bucket.Object(largeFileName).NewWriter(ctx)
|
||||
w.ChunkSize = 1e5
|
||||
if _, err := io.Copy(w, io.LimitReader(zReader{}, 1e6)); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
// Don't close the writer.
|
||||
fs, _, err := bucket.ListUnfinishedLargeFiles(ctx, 10, nil)
|
||||
if err != io.EOF && err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(fs) != 1 {
|
||||
t.Errorf("ListUnfinishedLargeFiles: got %d, want 1", len(fs))
|
||||
}
|
||||
}
|
||||
|
||||
type object struct {
|
||||
o *Object
|
||||
err error
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue