@cryptotaxi247 / kubo / commits / 5c0dc6a96

test dag reader context cancellation

License: MIT Signed-off-by: Steven Allen <steven@stebalien.com>

Steven Allen committed Jun 27, 2018 at 17:51 UTC 5c0dc6a968b21dbc8975b4f0e0d797c76be22fa6
1 file changed +35
unixfs/io/dagreader_test.go
+35
@@ -122,6 +122,41 @@ func TestSeekAndReadLarge(t *testing.T) {
122 }
123 }
124
125 +func TestReadAndCancel(t *testing.T) {
126 + dserv := testu.GetDAGServ()
127 + inbuf := make([]byte, 20000)
128 + rand.Read(inbuf)
129 +
130 + node := testu.GetNode(t, dserv, inbuf, testu.UseProtoBufLeaves)
131 + ctx, closer := context.WithCancel(context.Background())
132 + defer closer()
133 +
134 + reader, err := NewDagReader(ctx, node, dserv)
135 + if err != nil {
136 + t.Fatal(err)
137 + }
138 +
139 + ctx, cancel := context.WithCancel(context.Background())
140 + buf := make([]byte, 100)
141 + _, err = reader.CtxReadFull(ctx, buf)
142 + if err != nil {
143 + t.Fatal(err)
144 + }
145 + if !bytes.Equal(buf, inbuf[0:100]) {
146 + t.Fatal("read failed")
147 + }
148 + cancel()
149 +
150 + b, err := ioutil.ReadAll(reader)
151 + if err != nil {
152 + t.Fatal(err)
153 + }
154 +
155 + if !bytes.Equal(inbuf[100:], b) {
156 + t.Fatal("buffers not equal")
157 + }
158 +}
159 +
160 func TestRelativeSeek(t *testing.T) {
161 dserv := testu.GetDAGServ()
162 ctx, closer := context.WithCancel(context.Background())