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  }