Ensure that a transaction's free pages can be released.
(t *testing.T)
| 89 | |
| 90 | // Ensure that a transaction's free pages can be released. |
| 91 | func TestFreelist_release(t *testing.T) { |
| 92 | f := newTestFreelist() |
| 93 | f.Free(100, common.NewPage(12, 0, 0, 1)) |
| 94 | f.Free(100, common.NewPage(9, 0, 0, 0)) |
| 95 | f.Free(102, common.NewPage(39, 0, 0, 0)) |
| 96 | f.release(100) |
| 97 | f.release(101) |
| 98 | if exp := common.Pgids([]common.Pgid{9, 12, 13}); !reflect.DeepEqual(exp, f.freePageIds()) { |
| 99 | t.Fatalf("exp=%v; got=%v", exp, f.freePageIds()) |
| 100 | } |
| 101 | |
| 102 | f.release(102) |
| 103 | if exp := common.Pgids([]common.Pgid{9, 12, 13, 39}); !reflect.DeepEqual(exp, f.freePageIds()) { |
| 104 | t.Fatalf("exp=%v; got=%v", exp, f.freePageIds()) |
| 105 | } |
| 106 | } |
| 107 | |
| 108 | // Ensure that releaseRange handles boundary conditions correctly |
| 109 | func TestFreelist_releaseRange(t *testing.T) { |
nothing calls this directly
no test coverage detected