test: add relative seek test to dagreader

License: MIT
Signed-off-by: 's avatarJakub Sztandera <kubuxu@protonmail.ch>
上级 91f2765f
......@@ -50,22 +50,15 @@ func TestSeekAndRead(t *testing.T) {
for i := 255; i >= 0; i-- {
reader.Seek(int64(i), os.SEEK_SET)
out := make([]byte, 1)
if reader.Offset() != int64(i) {
t.Fatal("expected offset to be increased by one after read")
}
c, err := reader.Read(out)
if c != 1 {
t.Fatal("reader should have read just one byte")
}
if err != nil {
t.Fatal(err)
}
out := readByte(t, reader)
if int(out[0]) != i {
t.Fatalf("read %d at index %d, expected %d", out[0], i, i)
if int(out) != i {
t.Fatalf("read %d at index %d, expected %d", out, i, i)
}
if reader.Offset() != int64(i+1) {
......@@ -73,3 +66,44 @@ func TestSeekAndRead(t *testing.T) {
}
}
}
func TestRelativeSeek(t *testing.T) {
dserv := testu.GetDAGServ()
ctx, closer := context.WithCancel(context.Background())
defer closer()
inbuf := make([]byte, 1024)
for i := 0; i < 256; i++ {
inbuf[i*4] = byte(i)
}
node := testu.GetNode(t, dserv, inbuf)
reader, err := NewDagReader(ctx, node, dserv)
if err != nil {
t.Fatal(err)
}
for i := 0; i < 256; i++ {
out := readByte(t, reader)
if int(out) != i {
t.Fatalf("expected to read: %d at %d, read %d", i, reader.Offset(), out)
}
reader.Seek(3, os.SEEK_CUR)
}
}
func readByte(t testing.TB, reader *DagReader) byte {
out := make([]byte, 1)
c, err := reader.Read(out)
if c != 1 {
t.Fatal("reader should have read just one byte")
}
if err != nil {
t.Fatal(err)
}
return out[0]
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论