@cryptotaxi247 / kubo / commits / 70283151f

some cleanup, use WaitGroup over channel ugliness

Jeromy committed Dec 15, 2014 at 04:58 UTC 70283151f20fe943b991a425958e0245c93c2835
1 file changed +11 -61
merkledag/merkledag_test.go
+11 -61
@@ -5,6 +5,7 @@ import (
5 "fmt"
6 "io"
7 "io/ioutil"
8 + "sync"
9 "testing"
10
11 blockservice "github.com/jbenet/go-ipfs/blockservice"
@@ -95,72 +96,22 @@ func makeZeroDag(t *testing.T) *Node {
96 }
97
98 func TestBatchFetch(t *testing.T) {
98 - var dagservs []DAGService
99 - for _, bsi := range blockservice.Mocks(t, 5) {
100 - dagservs = append(dagservs, NewDAGService(bsi))
101 - }
102 - t.Log("finished setup.")
103 -
99 root := makeTestDag(t)
105 - read, err := uio.NewDagReader(root, nil)
106 - if err != nil {
107 - t.Fatal(err)
108 - }
109 - expected, err := ioutil.ReadAll(read)
110 - if err != nil {
111 - t.Fatal(err)
112 - }
113 -
114 - err = dagservs[0].AddRecursive(root)
115 - if err != nil {
116 - t.Fatal(err)
117 - }
118 -
119 - t.Log("Added file to first node.")
120 -
121 - k, err := root.Key()
122 - if err != nil {
123 - t.Fatal(err)
124 - }
125 -
126 - done := make(chan struct{})
127 - for i := 1; i < len(dagservs); i++ {
128 - go func(i int) {
129 - first, err := dagservs[i].Get(k)
130 - if err != nil {
131 - t.Fatal(err)
132 - }
133 - fmt.Println("Got first node back.")
134 -
135 - read, err := uio.NewDagReader(first, dagservs[i])
136 - if err != nil {
137 - t.Fatal(err)
138 - }
139 - datagot, err := ioutil.ReadAll(read)
140 - if err != nil {
141 - t.Fatal(err)
142 - }
143 -
144 - if !bytes.Equal(datagot, expected) {
145 - t.Fatal("Got bad data back!")
146 - }
147 - done <- struct{}{}
148 - }(i)
149 - }
150 -
151 - for i := 1; i < len(dagservs); i++ {
152 - <-done
153 - }
100 + runBatchFetchTest(t, root)
101 }
102
103 func TestBatchFetchDupBlock(t *testing.T) {
104 + root := makeZeroDag(t)
105 + runBatchFetchTest(t, root)
106 +}
107 +
108 +func runBatchFetchTest(t *testing.T, root *Node) {
109 var dagservs []DAGService
110 for _, bsi := range blockservice.Mocks(t, 5) {
111 dagservs = append(dagservs, NewDAGService(bsi))
112 }
113 t.Log("finished setup.")
114
163 - root := makeZeroDag(t)
115 read, err := uio.NewDagReader(root, nil)
116 if err != nil {
117 t.Fatal(err)
@@ -182,9 +133,11 @@ func TestBatchFetchDupBlock(t *testing.T) {
133 t.Fatal(err)
134 }
135
185 - done := make(chan struct{})
136 + wg := sync.WaitGroup{}
137 for i := 1; i < len(dagservs); i++ {
138 + wg.Add(1)
139 go func(i int) {
140 + defer wg.Done()
141 first, err := dagservs[i].Get(k)
142 if err != nil {
143 t.Fatal(err)
@@ -203,11 +156,8 @@ func TestBatchFetchDupBlock(t *testing.T) {
156 if !bytes.Equal(datagot, expected) {
157 t.Fatal("Got bad data back!")
158 }
206 - done <- struct{}{}
159 }(i)
160 }
161
210 - for i := 1; i < len(dagservs); i++ {
211 - <-done
212 - }
162 + wg.Done()
163 }