test: add absolute seek test
move tests to different file License: MIT Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
Jakub Sztandera committed
Aug 20, 2016 at 19:05 UTC
91f2765ff053cbf133b29d3661c8a75e948c259c
2 files changed
+75
-32
unixfs/io/dagreader_test.go
new
+75
@@ -0,0 +1,75 @@
1
+package io
2
+
3
+import (
4
+ "io/ioutil"
5
+ "os"
6
+ "testing"
7
+
8
+ context "gx/ipfs/QmZy2y8t9zQH2a1b8q2ZSLKp17ATuJoCNxxyMFG5qFExpt/go-net/context"
9
+
10
+ testu "github.com/ipfs/go-ipfs/unixfs/test"
11
+)
12
+
13
+func TestBasicRead(t *testing.T) {
14
+ dserv := testu.GetDAGServ()
15
+ inbuf, node := testu.GetRandomNode(t, dserv, 1024)
16
+ ctx, closer := context.WithCancel(context.Background())
17
+ defer closer()
18
+
19
+ reader, err := NewDagReader(ctx, node, dserv)
20
+ if err != nil {
21
+ t.Fatal(err)
22
+ }
23
+
24
+ outbuf, err := ioutil.ReadAll(reader)
25
+ if err != nil {
26
+ t.Fatal(err)
27
+ }
28
+
29
+ err = testu.ArrComp(inbuf, outbuf)
30
+ if err != nil {
31
+ t.Fatal(err)
32
+ }
33
+}
34
+
35
+func TestSeekAndRead(t *testing.T) {
36
+ dserv := testu.GetDAGServ()
37
+ inbuf := make([]byte, 256)
38
+ for i := 0; i <= 255; i++ {
39
+ inbuf[i] = byte(i)
40
+ }
41
+
42
+ node := testu.GetNode(t, dserv, inbuf)
43
+ ctx, closer := context.WithCancel(context.Background())
44
+ defer closer()
45
+
46
+ reader, err := NewDagReader(ctx, node, dserv)
47
+ if err != nil {
48
+ t.Fatal(err)
49
+ }
50
+
51
+ for i := 255; i >= 0; i-- {
52
+ reader.Seek(int64(i), os.SEEK_SET)
53
+ out := make([]byte, 1)
54
+
55
+ if reader.Offset() != int64(i) {
56
+ t.Fatal("expected offset to be increased by one after read")
57
+ }
58
+
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
+ }
66
+
67
+ if int(out[0]) != i {
68
+ t.Fatalf("read %d at index %d, expected %d", out[0], i, i)
69
+ }
70
+
71
+ if reader.Offset() != int64(i+1) {
72
+ t.Fatal("expected offset to be increased by one after read")
73
+ }
74
+ }
75
+}
unixfs/io/dagserv_test.go
deleted
-32
@@ -1,32 +0,0 @@
1
-package io
2
-
3
-import (
4
- "io/ioutil"
5
- "testing"
6
-
7
- context "gx/ipfs/QmZy2y8t9zQH2a1b8q2ZSLKp17ATuJoCNxxyMFG5qFExpt/go-net/context"
8
-
9
- testu "github.com/ipfs/go-ipfs/unixfs/test"
10
-)
11
-
12
-func TestBasicRead(t *testing.T) {
13
- dserv := testu.GetDAGServ()
14
- inbuf, node := testu.GetRandomNode(t, dserv, 1024)
15
- ctx, closer := context.WithCancel(context.Background())
16
- defer closer()
17
-
18
- reader, err := NewDagReader(ctx, node, dserv)
19
- if err != nil {
20
- t.Fatal(err)
21
- }
22
-
23
- outbuf, err := ioutil.ReadAll(reader)
24
- if err != nil {
25
- t.Fatal(err)
26
- }
27
-
28
- err = testu.ArrComp(inbuf, outbuf)
29
- if err != nil {
30
- t.Fatal(err)
31
- }
32
-}