(t *testing.T, srcPath, dstPath string, pageId uint64, isBranchPage bool, startIdx, endIdx int)
| 346 | } |
| 347 | |
| 348 | func compareDataAfterClearingElement(t *testing.T, srcPath, dstPath string, pageId uint64, isBranchPage bool, startIdx, endIdx int) { |
| 349 | srcPage, _, err := guts_cli.ReadPage(srcPath, pageId) |
| 350 | require.NoError(t, err) |
| 351 | |
| 352 | dstPage, _, err := guts_cli.ReadPage(dstPath, pageId) |
| 353 | require.NoError(t, err) |
| 354 | |
| 355 | var dstIdx uint16 |
| 356 | for i := uint16(0); i < srcPage.Count(); i++ { |
| 357 | // skip the cleared elements |
| 358 | if dstIdx >= uint16(startIdx) && (dstIdx < uint16(endIdx) || endIdx == -1) { |
| 359 | continue |
| 360 | } |
| 361 | |
| 362 | if isBranchPage { |
| 363 | srcElement := srcPage.BranchPageElement(i) |
| 364 | dstElement := dstPage.BranchPageElement(dstIdx) |
| 365 | |
| 366 | require.Equal(t, srcElement.Key(), dstElement.Key()) |
| 367 | require.Equal(t, srcElement.Pgid(), dstElement.Pgid()) |
| 368 | } else { |
| 369 | srcElement := srcPage.LeafPageElement(i) |
| 370 | dstElement := dstPage.LeafPageElement(dstIdx) |
| 371 | |
| 372 | require.Equal(t, srcElement.Flags(), dstElement.Flags()) |
| 373 | require.Equal(t, srcElement.Key(), dstElement.Key()) |
| 374 | require.Equal(t, srcElement.Value(), dstElement.Value()) |
| 375 | } |
| 376 | |
| 377 | dstIdx++ |
| 378 | } |
| 379 | } |
| 380 | |
| 381 | func TestSurgery_ClearPageElements_With_Overflow(t *testing.T) { |
| 382 | testCases := []struct { |
no test coverage detected