test: add relative seek test to dagreader
License: MIT Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
Jakub Sztandera committed
Aug 20, 2016 at 19:49 UTC
cd22fb108531fef6a6e2245e69f4266ccd7ffcb7
1 file changed
+44
-10
unixfs/io/dagreader_test.go
+44
-10
@@ -50,22 +50,15 @@ func TestSeekAndRead(t *testing.T) {
50
51
for i := 255; i >= 0; i-- {
52
reader.Seek(int64(i), os.SEEK_SET)
53
- out := make([]byte, 1)
53
54
if reader.Offset() != int64(i) {
55
t.Fatal("expected offset to be increased by one after read")
56
}
57
59
- c, err := reader.Read(out)
60
- if c != 1 {
61
- t.Fatal("reader should have read just one byte")
62
- }
63
- if err != nil {
64
- t.Fatal(err)
65
- }
58
+ out := readByte(t, reader)
59
67
- if int(out[0]) != i {
68
- t.Fatalf("read %d at index %d, expected %d", out[0], i, i)
60
+ if int(out) != i {
61
+ t.Fatalf("read %d at index %d, expected %d", out, i, i)
62
}
63
64
if reader.Offset() != int64(i+1) {
@@ -73,3 +66,44 @@ func TestSeekAndRead(t *testing.T) {
66
}
67
}
68
}
69
+
70
+func TestRelativeSeek(t *testing.T) {
71
+ dserv := testu.GetDAGServ()
72
+ ctx, closer := context.WithCancel(context.Background())
73
+ defer closer()
74
+
75
+ inbuf := make([]byte, 1024)
76
+
77
+ for i := 0; i < 256; i++ {
78
+ inbuf[i*4] = byte(i)
79
+ }
80
+ node := testu.GetNode(t, dserv, inbuf)
81
+
82
+ reader, err := NewDagReader(ctx, node, dserv)
83
+ if err != nil {
84
+ t.Fatal(err)
85
+ }
86
+
87
+ for i := 0; i < 256; i++ {
88
+ out := readByte(t, reader)
89
+ if int(out) != i {
90
+ t.Fatalf("expected to read: %d at %d, read %d", i, reader.Offset(), out)
91
+ }
92
+ reader.Seek(3, os.SEEK_CUR)
93
+ }
94
+
95
+}
96
+
97
+func readByte(t testing.TB, reader *DagReader) byte {
98
+ out := make([]byte, 1)
99
+ c, err := reader.Read(out)
100
+
101
+ if c != 1 {
102
+ t.Fatal("reader should have read just one byte")
103
+ }
104
+ if err != nil {
105
+ t.Fatal(err)
106
+ }
107
+
108
+ return out[0]
109
+}