github.com/scottcagno/storage@v1.8.0/pkg/_se/pager_test.go (about) 1 package _se 2 3 import ( 4 "bytes" 5 "fmt" 6 "testing" 7 "time" 8 ) 9 10 var tpath = "se-pager-test/pagerfile.txt" 11 12 var records = [][]byte{ 13 []byte("this record will fit in one (64b) page, not two"), 14 []byte("this record is a little bit longer than the first one--it should end up occupying two pages but not three"), 15 []byte("and this record is going to be a bit longer than the second one and ideally we should aim to fill three pages, but not four. this one should suffice."), 16 } 17 18 func TestNewPageWriter(t *testing.T) { 19 20 // open file 21 //f, err := openFile(tpath) 22 //if err != nil { 23 // t.Error(err) 24 //} 25 // 26 //// done forget to close file 27 //defer f.Close() 28 29 var bb bytes.Buffer 30 31 pw := NewPageWriter(&bb) 32 n, err := pw.Write(records[2]) 33 if err != nil { 34 t.Error(err) 35 } 36 err = pw.Flush() 37 if err != nil { 38 t.Error(err) 39 } 40 time.Sleep(250 * time.Millisecond) 41 fmt.Printf("wrote=%d, data=%q\n", n, bb.Bytes()) 42 43 pr := NewPageReader(&bb) 44 buf := make([]byte, pageSize) 45 n, err = pr.Read(buf) 46 if err != nil { 47 t.Error(err) 48 } 49 fmt.Printf("read=%d, data=%q\n", n, buf) 50 }