Skip to content

Commit 3ed7338

Browse files
committed
Add test that completes the write file by meeting the file size limit exactly with a message less than 8 bytes.
1 parent a3ce86a commit 3ed7338

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

diskqueue_test.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,8 @@ func TestDiskQueueSyncAfterReadWithDiskSizeImplementation(t *testing.T) {
351351
dq := NewWithDiskSpace(dqName, tmpDir, 1<<11, 1<<11, 0, 1<<10, 2500, 50*time.Millisecond, l)
352352
defer dq.Close()
353353

354-
msg := make([]byte, 1000)
354+
msgSize := 1000
355+
msg := make([]byte, msgSize)
355356
dq.Put(msg)
356357

357358
for i := 0; i < 10; i++ {
@@ -391,12 +392,17 @@ next:
391392
panic("fail")
392393

393394
completeWriteFile:
394-
dq.Put(msg)
395+
// meet the file size limit exactly (2048 bytes)
396+
totalBytes := 2 * (msgSize + 4)
397+
bytesRemaining := 2048 - (totalBytes + 8)
398+
oneByteMsgSizeIncrease := 5
399+
dq.Put(make([]byte, bytesRemaining-4-oneByteMsgSizeIncrease))
400+
dq.Put(make([]byte, 1))
395401

396402
for i := 0; i < 10; i++ {
397403
// test that write position and messages reset when a new file is created
398404
d := readMetaDataFile(dq.(*diskQueue).metaDataFileName(), 0, true)
399-
if d.depth == 2 &&
405+
if d.depth == 3 &&
400406
d.readFileNum == 0 &&
401407
d.writeFileNum == 1 &&
402408
d.readPos == 1004 &&
@@ -413,12 +419,14 @@ completeWriteFile:
413419
completeReadFile:
414420
dq.Put(msg)
415421

422+
<-dq.ReadChan()
416423
<-dq.ReadChan()
417424
<-dq.ReadChan()
418425

419426
for i := 0; i < 10; i++ {
420427
// test that read position and messages reset when a file is completely read
421428
d := readMetaDataFile(dq.(*diskQueue).metaDataFileName(), 0, true)
429+
t.Log(d.depth, d.readFileNum, d.writeFileNum, d.readPos, d.writePos, d.readMessages, d.writeMessages)
422430
if d.depth == 1 &&
423431
d.readFileNum == 1 &&
424432
d.writeFileNum == 1 &&

0 commit comments

Comments
 (0)