mirror of
https://github.com/ipfs/kubo.git
synced 2026-02-25 04:17:44 +08:00
test: add relative seek test to dagreader
License: MIT Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
This commit is contained in:
parent
91f2765ff0
commit
cd22fb1085
@ -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]
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user