This commit is contained in:
2026-05-31 20:01:28 +00:00
parent e7ec6083cb
commit db5ecd3dfd
28 changed files with 2090 additions and 2155 deletions

View File

@@ -2,22 +2,39 @@ package freelist
import (
"fmt"
"os"
"testing"
)
func createFreeList() (_ *FreeList, err error) {
file, err := os.OpenFile("test.free", os.O_CREATE|os.O_RDWR, 0666)
if err != nil {
return
}
return New(Options{
PageSize: 20,
File: file,
PageSize: 20,
BaseFilePath: "test.basefree",
DeltaFilePath: "test.deltafree",
FrozenPageCount: 2,
})
}
func TestAddToFreeList(t *testing.T) {
func TestBuffer(t *testing.T) {
freeList, err := createFreeList()
if err != nil {
t.Fatal(err)
}
pageNumbers := []uint32{1, 2, 3, 4}
//pageNumbers := []uint32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
err = freeList.AddPageNumbers(pageNumbers)
if err != nil {
t.Fatal(err)
}
for range len(pageNumbers) + 1 {
pageNo, err := freeList.GetPageNumber()
fmt.Println(pageNo, err)
}
}
func TestSave(t *testing.T) {
freeList, err := createFreeList()
if err != nil {
t.Fatal(err)
@@ -29,16 +46,67 @@ func TestAddToFreeList(t *testing.T) {
if err != nil {
t.Fatal(err)
}
err = freeList.Merge()
if err != nil {
t.Fatal(err)
}
// for range len(pageNumbers) + 1 {
// pageNo, err := freeList.GetPageNumber()
// fmt.Println(pageNo, err)
// }
}
func TestGetFromFreeList(t *testing.T) {
func TestDelta(t *testing.T) {
freeList, err := createFreeList()
if err != nil {
t.Fatal(err)
}
for range 4 {
serialized := []byte{9, 0, 0, 0, 10, 0, 0, 0}
err = freeList.Restore(serialized)
if err != nil {
t.Fatal(err)
}
for range 3 {
pageNo, err := freeList.GetPageNumber()
fmt.Println(pageNo, err)
}
err = freeList.AddPageNumbers([]uint32{20, 21, 22})
if err != nil {
t.Fatal(err)
}
err = freeList.AddPageNumbers([]uint32{23, 24, 25, 26})
if err != nil {
t.Fatal(err)
}
serialized, err = freeList.Serialize()
if err != nil {
t.Fatal(err)
}
fmt.Println("free serialized:", serialized)
err = freeList.Merge()
if err != nil {
t.Fatal(err)
}
}
// func TestGetFromFreeList(t *testing.T) {
// freeList, err := createFreeList()
// if err != nil {
// t.Fatal(err)
// }
// for range 4 {
// pageNo, err := freeList.GetPageNumber()
// fmt.Println(pageNo, err)
// }
// }