test: add reverse relative seeking test to dagreader
License: MIT Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
Jakub Sztandera committed
Aug 20, 2016 at 20:12 UTC
707f466713689b5096ac408d761fe0db44c92db5
1 file changed
+28
-2
unixfs/io/dagreader_test.go
+28
-2
@@ -77,6 +77,8 @@ func TestRelativeSeek(t *testing.T) {
77
for i := 0; i < 256; i++ {
78
inbuf[i*4] = byte(i)
79
}
80
+
81
+ inbuf[1023] = 1 // force the reader to be 1024 bytes
82
node := testu.GetNode(t, dserv, inbuf)
83
84
reader, err := NewDagReader(ctx, node, dserv)
@@ -85,11 +87,35 @@ func TestRelativeSeek(t *testing.T) {
87
}
88
89
for i := 0; i < 256; i++ {
90
+ if reader.Offset() != int64(i*4) {
91
+ t.Fatalf("offset should be %d, was %d", i*4, reader.Offset())
92
+ }
93
out := readByte(t, reader)
94
if int(out) != i {
90
- t.Fatalf("expected to read: %d at %d, read %d", i, reader.Offset(), out)
95
+ t.Fatalf("expected to read: %d at %d, read %d", i, reader.Offset()-1, out)
96
+ }
97
+ if i != 255 {
98
+ _, err := reader.Seek(3, os.SEEK_CUR)
99
+ if err != nil {
100
+ t.Fatal(err)
101
+ }
102
+ }
103
+ }
104
+
105
+ _, err = reader.Seek(4, os.SEEK_END)
106
+ if err != nil {
107
+ t.Fatal(err)
108
+ }
109
+
110
+ for i := 0; i < 256; i++ {
111
+ if reader.Offset() != int64(1020-i*4) {
112
+ t.Fatalf("offset should be %d, was %d", 1020-i*4, reader.Offset())
113
+ }
114
+ out := readByte(t, reader)
115
+ if int(out) != 255-i {
116
+ t.Fatalf("expected to read: %d at %d, read %d", 255-i, reader.Offset()-1, out)
117
}
92
- reader.Seek(3, os.SEEK_CUR)
118
+ reader.Seek(-5, os.SEEK_CUR) // seek 4 bytes but we read one byte every time so 5 bytes
119
}
120
121
}