MCPcopy Index your code
hub / github.com/ByteStorage/FlyDB / TestDataFile_ReadLogRecord

Function TestDataFile_ReadLogRecord

engine/data/data_file_test.go:59–105  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

57}
58
59func TestDataFile_ReadLogRecord(t *testing.T) {
60 dataFile, err := OpenDataFile(os.TempDir(), 123, DefaultFileSize, fileio.FileIOType)
61 assert.Nil(t, err)
62 assert.NotNil(t, dataFile)
63
64 // There is only one LogRecord
65 record1 := &LogRecord{
66 Key: []byte("name"),
67 Value: []byte("flydb"),
68 Type: LogRecordNormal,
69 }
70 buf1, size := EncodeLogRecord(record1)
71 err = dataFile.Write(buf1)
72 assert.Nil(t, err)
73
74 readRec1, readSize1, err := dataFile.ReadLogRecord(0)
75 assert.Nil(t, err)
76 assert.Equal(t, size, readSize1)
77 assert.Equal(t, record1, readRec1)
78
79 // Multiple logrecords are read from different locations
80 record2 := &LogRecord{
81 Key: []byte("name"),
82 Value: []byte("bitcask-kv"),
83 Type: LogRecordNormal,
84 }
85 buf2, size2 := EncodeLogRecord(record2)
86 err = dataFile.Write(buf2)
87 assert.Nil(t, err)
88 readRec2, readSize2, err := dataFile.ReadLogRecord(16)
89 assert.Equal(t, size2, readSize2)
90 assert.Equal(t, record2, readRec2)
91
92 // The deleted data is at the end of the data file
93 record3 := &LogRecord{
94 Key: []byte("name"),
95 Value: []byte("delete-data"),
96 Type: LogRecordNormal,
97 }
98 buf3, size3 := EncodeLogRecord(record3)
99 err = dataFile.Write(buf3)
100 assert.Nil(t, err)
101 readRec3, readSize3, err := dataFile.ReadLogRecord(size + size2)
102 assert.Equal(t, size3, readSize3)
103 assert.Equal(t, record3, readRec3)
104
105}

Callers

nothing calls this directly

Calls 4

OpenDataFileFunction · 0.85
EncodeLogRecordFunction · 0.85
ReadLogRecordMethod · 0.80
WriteMethod · 0.65

Tested by

no test coverage detected