MCPcopy
hub / github.com/etcd-io/bbolt / TestFreelist_release

Function TestFreelist_release

internal/freelist/freelist_test.go:91–106  ·  view source on GitHub ↗

Ensure that a transaction's free pages can be released.

(t *testing.T)

Source from the content-addressed store, hash-verified

89
90// Ensure that a transaction's free pages can be released.
91func 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
109func TestFreelist_releaseRange(t *testing.T) {

Callers

nothing calls this directly

Calls 7

NewPageFunction · 0.92
PgidsTypeAlias · 0.92
newTestFreelistFunction · 0.85
FreeMethod · 0.65
releaseMethod · 0.65
freePageIdsMethod · 0.65
FatalfMethod · 0.65

Tested by

no test coverage detected