From f41801cbf43315d5895676420d712e41265ebafb Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 12 Dec 2015 21:28:00 +0100 Subject: [PATCH] merkledag/merkledag_test: fix t.Fatal in a goroutine License: MIT Signed-off-by: Christian Couder --- merkledag/merkledag_test.go | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/merkledag/merkledag_test.go b/merkledag/merkledag_test.go index 40bc45740..d81cdc003 100644 --- a/merkledag/merkledag_test.go +++ b/merkledag/merkledag_test.go @@ -2,6 +2,7 @@ package merkledag_test import ( "bytes" + "errors" "fmt" "io" "io/ioutil" @@ -193,32 +194,43 @@ func runBatchFetchTest(t *testing.T, read io.Reader) { } wg := sync.WaitGroup{} + errs := make(chan error) + for i := 1; i < len(dagservs); i++ { wg.Add(1) go func(i int) { defer wg.Done() first, err := dagservs[i].Get(ctx, k) if err != nil { - t.Fatal(err) + errs <- err } fmt.Println("Got first node back.") read, err := uio.NewDagReader(ctx, first, dagservs[i]) if err != nil { - t.Fatal(err) + errs <- err } datagot, err := ioutil.ReadAll(read) if err != nil { - t.Fatal(err) + errs <- err } if !bytes.Equal(datagot, expected) { - t.Fatal("Got bad data back!") + errs <- errors.New("Got bad data back!") } }(i) } - wg.Wait() + go func() { + wg.Wait() + close(errs) + }() + + for err := range errs { + if err != nil { + t.Fatal(err) + } + } } func TestRecursiveAdd(t *testing.T) {