wp
This commit is contained in:
@@ -1081,3 +1081,74 @@ func TestReplayMetric(t *testing.T) {
|
||||
fmt.Printf("%d: % x\n", metric.IndexLevelTails[0].RecordsCount, metric.IndexLevelTails[0].Buffer)
|
||||
fmt.Printf("%d: % x\n", metric.IndexLevelTails[1].RecordsCount, metric.IndexLevelTails[1].Buffer)
|
||||
}
|
||||
|
||||
// func TestComposeHeadIndexPage(t *testing.T) {
|
||||
// var (
|
||||
// levelIdx = 0
|
||||
// level = storage.IndexLevelTail{
|
||||
// Buffer: []byte{
|
||||
// 1, 2, 3,
|
||||
// },
|
||||
// RecordsCount: 2,
|
||||
// }
|
||||
// head = &storage.IndexPageTail{
|
||||
// PageNo: 100,
|
||||
// CRC32: 12345,
|
||||
// Records: []byte{},
|
||||
// }
|
||||
// )
|
||||
// page := composeHeadIndexPage(levelIdx, level, head)
|
||||
// if page.PageNo != head.PageNo {
|
||||
// t.Fatalf("PageNo: got %d are not equal expected %v",
|
||||
// page.PageNo, head.PageNo)
|
||||
// }
|
||||
// // fix compare pages
|
||||
// }
|
||||
|
||||
func TestFindPageOnIndexTails(t *testing.T) {
|
||||
levels := []IndexLevelTail{
|
||||
{
|
||||
Buffer: []byte{
|
||||
0x64, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, // 100 => 10
|
||||
0x6e, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, // 110 => 11
|
||||
},
|
||||
RecordsCount: 2,
|
||||
},
|
||||
{
|
||||
Buffer: []byte{
|
||||
0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // 10 => 1
|
||||
0x28, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // 40 => 4
|
||||
0x46, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, // 70 => 7
|
||||
},
|
||||
RecordsCount: 3,
|
||||
},
|
||||
}
|
||||
testCases := []struct {
|
||||
Timestamp uint32
|
||||
PageNo uint32
|
||||
IsDataPage bool
|
||||
}{
|
||||
{Timestamp: 9, PageNo: 0, IsDataPage: false},
|
||||
{Timestamp: 10, PageNo: 1, IsDataPage: false},
|
||||
{Timestamp: 20, PageNo: 1, IsDataPage: false},
|
||||
{Timestamp: 40, PageNo: 4, IsDataPage: false},
|
||||
{Timestamp: 60, PageNo: 4, IsDataPage: false},
|
||||
{Timestamp: 70, PageNo: 7, IsDataPage: false},
|
||||
{Timestamp: 90, PageNo: 7, IsDataPage: false},
|
||||
{Timestamp: 100, PageNo: 10, IsDataPage: true},
|
||||
{Timestamp: 105, PageNo: 10, IsDataPage: true},
|
||||
{Timestamp: 110, PageNo: 11, IsDataPage: true},
|
||||
{Timestamp: 120, PageNo: 11, IsDataPage: true},
|
||||
}
|
||||
for _, testCase := range testCases {
|
||||
pageNo, isDataPage := FindPageOnIndexLevelTails(levels, testCase.Timestamp)
|
||||
if pageNo != testCase.PageNo {
|
||||
t.Fatalf("timestamp %d: got pageNo %d are not equal expected %d",
|
||||
testCase.Timestamp, pageNo, testCase.PageNo)
|
||||
}
|
||||
if isDataPage != testCase.IsDataPage {
|
||||
t.Fatalf("timestamp %d: got isDataPage %t are not equal expected %t",
|
||||
testCase.Timestamp, isDataPage, testCase.IsDataPage)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user