Skip to content

Commit 30c6ef6

Browse files
committed
Add extra testing to validate the increment/decrement of bytes in core code.
1 parent 3ed7338 commit 30c6ef6

File tree

1 file changed

+62
-2
lines changed

1 file changed

+62
-2
lines changed

diskqueue_test.go

Lines changed: 62 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -392,7 +392,8 @@ next:
392392
panic("fail")
393393

394394
completeWriteFile:
395-
// meet the file size limit exactly (2048 bytes)
395+
// meet the file size limit exactly (2048 bytes) when writeFileNum
396+
// equals readFileNum
396397
totalBytes := 2 * (msgSize + 4)
397398
bytesRemaining := 2048 - (totalBytes + 8)
398399
oneByteMsgSizeIncrease := 5
@@ -401,6 +402,7 @@ completeWriteFile:
401402

402403
for i := 0; i < 10; i++ {
403404
// test that write position and messages reset when a new file is created
405+
// test the writeFileNum correctly increments
404406
d := readMetaDataFile(dq.(*diskQueue).metaDataFileName(), 0, true)
405407
if d.depth == 3 &&
406408
d.readFileNum == 0 &&
@@ -425,8 +427,8 @@ completeReadFile:
425427

426428
for i := 0; i < 10; i++ {
427429
// test that read position and messages reset when a file is completely read
430+
// test the readFileNum correctly increments
428431
d := readMetaDataFile(dq.(*diskQueue).metaDataFileName(), 0, true)
429-
t.Log(d.depth, d.readFileNum, d.writeFileNum, d.readPos, d.writePos, d.readMessages, d.writeMessages)
430432
if d.depth == 1 &&
431433
d.readFileNum == 1 &&
432434
d.writeFileNum == 1 &&
@@ -435,6 +437,64 @@ completeReadFile:
435437
d.readMessages == 0 &&
436438
d.writeMessages == 1 {
437439
// success
440+
goto completeWriteFileAgain
441+
}
442+
time.Sleep(100 * time.Millisecond)
443+
}
444+
panic("fail")
445+
446+
completeWriteFileAgain:
447+
// make writeFileNum ahead of readFileNum
448+
dq.Put(msg)
449+
dq.Put(msg)
450+
451+
// meet the file size limit exactly (2048 bytes) when writeFileNum
452+
// is ahead of readFileNum
453+
dq.Put(msg)
454+
dq.Put(msg)
455+
dq.Put(make([]byte, bytesRemaining-4-oneByteMsgSizeIncrease))
456+
dq.Put(make([]byte, 1))
457+
458+
for i := 0; i < 10; i++ {
459+
// test that write position and messages reset when a file is completely read
460+
// test the writeFileNum correctly increments
461+
d := readMetaDataFile(dq.(*diskQueue).metaDataFileName(), 0, true)
462+
if d.depth == 7 &&
463+
d.readFileNum == 1 &&
464+
d.writeFileNum == 3 &&
465+
d.readPos == 0 &&
466+
d.writePos == 0 &&
467+
d.readMessages == 0 &&
468+
d.writeMessages == 0 {
469+
// success
470+
goto completeReadFileAgain
471+
}
472+
time.Sleep(100 * time.Millisecond)
473+
}
474+
panic("fail")
475+
476+
completeReadFileAgain:
477+
<-dq.ReadChan()
478+
<-dq.ReadChan()
479+
<-dq.ReadChan()
480+
481+
<-dq.ReadChan()
482+
<-dq.ReadChan()
483+
<-dq.ReadChan()
484+
<-dq.ReadChan()
485+
486+
for i := 0; i < 10; i++ {
487+
// test that read position and messages reset when a file is completely read
488+
// test the readFileNum correctly increments
489+
d := readMetaDataFile(dq.(*diskQueue).metaDataFileName(), 0, true)
490+
if d.depth == 0 &&
491+
d.readFileNum == 3 &&
492+
d.writeFileNum == 3 &&
493+
d.readPos == 0 &&
494+
d.writePos == 0 &&
495+
d.readMessages == 0 &&
496+
d.writeMessages == 0 {
497+
// success
438498
goto done
439499
}
440500
time.Sleep(100 * time.Millisecond)

0 commit comments

Comments
 (0)