Skip to content

Commit 98b8a82

Browse files
authored
test(storage): add flush to append test cases (googleapis#12007)
Add a couple test cases that combine takeover for append and Flush
1 parent fe831f9 commit 98b8a82

File tree

1 file changed

+31
-12
lines changed

1 file changed

+31
-12
lines changed

storage/integration_test.go

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3251,36 +3251,40 @@ func TestIntegration_WriterAppendTakeover(t *testing.T) {
32513251
name string
32523252
content []byte
32533253
takeoverOffset int64
3254+
takeoverFlushOffset int64
32543255
opts *AppendableWriterOpts
32553256
checkProgressOffsets []int64
32563257
}{
32573258
{
3258-
name: "first message takeover",
3259+
name: "first message takeover w/large flush",
32593260
content: randomBytes9MiB,
32603261
takeoverOffset: MiB,
32613262
opts: nil,
32623263
},
32633264
{
3264-
name: "first chunk takeover, progressfunc",
3265-
content: randomBytes9MiB,
3266-
takeoverOffset: 3 * MiB,
3265+
name: "first chunk takeover, progressfunc, larger flush",
3266+
content: randomBytes9MiB,
3267+
takeoverOffset: 3 * MiB,
3268+
takeoverFlushOffset: 8 * MiB,
32673269
opts: &AppendableWriterOpts{
32683270
ChunkSize: 4 * MiB,
32693271
},
3270-
checkProgressOffsets: []int64{7 * MiB},
3272+
checkProgressOffsets: []int64{7 * MiB, 8 * MiB},
32713273
},
32723274
{
3273-
name: "middle chunk takeover",
3274-
content: randomBytes9MiB,
3275-
takeoverOffset: 6 * MiB,
3275+
name: "middle chunk takeover, small flush",
3276+
content: randomBytes9MiB,
3277+
takeoverOffset: 6 * MiB,
3278+
takeoverFlushOffset: 6*MiB + 100,
32763279
opts: &AppendableWriterOpts{
32773280
ChunkSize: 4 * MiB,
32783281
},
32793282
},
32803283
{
3281-
name: "final chunk takeover",
3282-
content: randomBytes9MiB,
3283-
takeoverOffset: 8*MiB + 100,
3284+
name: "final chunk takeover, zero byte flush",
3285+
content: randomBytes9MiB,
3286+
takeoverOffset: 8*MiB + 100,
3287+
takeoverFlushOffset: 8*MiB + 100,
32843288
opts: &AppendableWriterOpts{
32853289
ChunkSize: 4 * MiB,
32863290
},
@@ -3373,8 +3377,23 @@ func TestIntegration_WriterAppendTakeover(t *testing.T) {
33733377
t.Errorf("Writer.ProgressFunc: got non-nil, want nil")
33743378
}
33753379

3380+
remainingOffset := tc.takeoverOffset
3381+
if tc.takeoverFlushOffset != 0 {
3382+
if _, err := w2.Write(tc.content[remainingOffset:tc.takeoverFlushOffset]); err != nil {
3383+
t.Fatalf("writing after takeover: %v", err)
3384+
}
3385+
remainingOffset = tc.takeoverFlushOffset
3386+
n, err := w2.Flush()
3387+
if err != nil {
3388+
t.Fatalf("Writer.Flush: %v", err)
3389+
}
3390+
if n != remainingOffset {
3391+
t.Errorf("Writer.Flush: got %v bytes flushed, want %v", n, remainingOffset)
3392+
}
3393+
}
3394+
33763395
// Write remainder of the content and close.
3377-
h.mustWrite(w2, tc.content[tc.takeoverOffset:])
3396+
h.mustWrite(w2, tc.content[remainingOffset:])
33783397

33793398
// Download content again and validate.
33803399
// Disabled due to b/395944605; unskip after this is resolved.

0 commit comments

Comments
 (0)