merkledag/merkledag_test: fix t.Fatal in a goroutine
License: MIT Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Christian Couder committed
Dec 12, 2015 at 21:28 UTC
f41801cbf43315d5895676420d712e41265ebafb
1 file changed
+17
-5
merkledag/merkledag_test.go
+17
-5
@@ -2,6 +2,7 @@ package merkledag_test
2
3
import (
4
"bytes"
5
+ "errors"
6
"fmt"
7
"io"
8
"io/ioutil"
@@ -193,32 +194,43 @@ func runBatchFetchTest(t *testing.T, read io.Reader) {
194
}
195
196
wg := sync.WaitGroup{}
197
+ errs := make(chan error)
198
+
199
for i := 1; i < len(dagservs); i++ {
200
wg.Add(1)
201
go func(i int) {
202
defer wg.Done()
203
first, err := dagservs[i].Get(ctx, k)
204
if err != nil {
202
- t.Fatal(err)
205
+ errs <- err
206
}
207
fmt.Println("Got first node back.")
208
209
read, err := uio.NewDagReader(ctx, first, dagservs[i])
210
if err != nil {
208
- t.Fatal(err)
211
+ errs <- err
212
}
213
datagot, err := ioutil.ReadAll(read)
214
if err != nil {
212
- t.Fatal(err)
215
+ errs <- err
216
}
217
218
if !bytes.Equal(datagot, expected) {
216
- t.Fatal("Got bad data back!")
219
+ errs <- errors.New("Got bad data back!")
220
}
221
}(i)
222
}
223
221
- wg.Wait()
224
+ go func() {
225
+ wg.Wait()
226
+ close(errs)
227
+ }()
228
+
229
+ for err := range errs {
230
+ if err != nil {
231
+ t.Fatal(err)
232
+ }
233
+ }
234
}
235
236
func TestRecursiveAdd(t *testing.T) {