@cryptotaxi247 / kubo / commits / f41801cbf

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) {