@cryptotaxi247 / kubo / commits / cd22fb108

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 +}