Skip to content

Commit 9ed2cba

Browse files
authored
test(storage): retry conformance test for flush (#12083)
Add a retry conformance test for writer.Flush.
1 parent 8f38e18 commit 9ed2cba

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

storage/retry_conformance_test.go

+46
Original file line numberDiff line numberDiff line change
@@ -664,6 +664,52 @@ var methods = map[string][]retryFunc{
664664
return fmt.Errorf("Reader.Read: %v", err)
665665
}
666666

667+
if d := cmp.Diff(content, randomBytes3MiB); d != "" {
668+
return fmt.Errorf("content mismatch, got %v bytes, want %v bytes", len(content), len(randomBytes3MiB))
669+
}
670+
return nil
671+
},
672+
// Appendable upload using Flush() and FinalizeOnClose=false.
673+
func(ctx context.Context, c *Client, fs *resources, preconditions bool) error {
674+
bucketName := fmt.Sprintf("%s-appendable", bucketIDs.New())
675+
b := c.Bucket(bucketName)
676+
if err := b.Create(ctx, projectID, nil); err != nil {
677+
return err
678+
}
679+
defer b.Delete(ctx)
680+
681+
obj := b.Object(objectIDs.New())
682+
if preconditions {
683+
obj = obj.If(Conditions{DoesNotExist: true})
684+
}
685+
686+
objW := obj.NewWriter(ctx)
687+
objW.Append = true
688+
objW.ChunkSize = MiB
689+
690+
if _, err := objW.Write(randomBytes3MiB); err != nil {
691+
return fmt.Errorf("Writer.Write: %w", err)
692+
}
693+
if _, err := objW.Flush(); err != nil {
694+
return fmt.Errorf("Writer.Flush: %w", err)
695+
696+
}
697+
698+
if err := objW.Close(); err != nil {
699+
return fmt.Errorf("Writer.Close: %w", err)
700+
}
701+
702+
// Don't reuse obj, in case preconditions were set on the write request.
703+
r, err := b.Object(obj.ObjectName()).NewReader(ctx)
704+
defer r.Close()
705+
if err != nil {
706+
return fmt.Errorf("obj.NewReader: %w", err)
707+
}
708+
content, err := io.ReadAll(r)
709+
if err != nil {
710+
return fmt.Errorf("Reader.Read: %w", err)
711+
}
712+
667713
if d := cmp.Diff(content, randomBytes3MiB); d != "" {
668714
return fmt.Errorf("content mismatch, got %v bytes, want %v bytes", len(content), len(randomBytes3MiB))
669715
}

0 commit comments

Comments
 (0)