From 879d93eb3b5afc28956b25f19d6ded55bbd87b75 Mon Sep 17 00:00:00 2001 From: Matt Reiferson Date: Sun, 29 Oct 2023 19:56:52 -0700 Subject: [PATCH] add test for read EOF --- diskqueue_test.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/diskqueue_test.go b/diskqueue_test.go index d10387b..c5374c3 100644 --- a/diskqueue_test.go +++ b/diskqueue_test.go @@ -817,3 +817,33 @@ func TestDiskQueueRollAsync(t *testing.T) { return err }) } + +func TestWriteRollReadEOF(t *testing.T) { + l := NewTestLogger(t) + dqName := "test_disk_queue_roll_readEOF" + strconv.Itoa(int(time.Now().Unix())) + tmpDir, err := ioutil.TempDir("", fmt.Sprintf("nsq-test-%d", time.Now().UnixNano())) + if err != nil { + panic(err) + } + defer os.RemoveAll(tmpDir) + dq := New(dqName, tmpDir, 1024, 4, 1<<10, 2500, 2*time.Second, l) + defer dq.Close() + NotNil(t, dq) + Equal(t, int64(0), dq.Depth()) + + for i := 0; i < 205; i++ { // 204 messages fit, but message 205 will be too big + msg := []byte(fmt.Sprintf("%05d", i)) // 5 bytes + err = dq.Put(msg) + + msgOut := <-dq.ReadChan() + Equal(t, msg, msgOut) + } + + filepath.Walk(tmpDir, func(path string, info fs.FileInfo, err error) error { + if strings.HasSuffix(path, ".bad") { + t.FailNow() + } + + return err + }) +}