epictest: fix mn.Peers() setup race
@maybebtc the error was not inside mocknet. the error is in assuming the peers / nets returned follow the same order. See: - https://github.com/jbenet/go-ipfs/blob/master/epictest/addcat_test.go#L100 - https://gist.github.com/jbenet/a39bb9d2f16532a03bb8 if you want the results to be sorted by peer.ID before they are returned, we can totally do that, but that's probably an unsafe assumption to make in general-- if you do your initialization async, the number of networks or peers may have changed between the two calls. LMK what you prefer. (thank you golang map chaosmonkey ;)
Juan Batiz-Benet committed
Dec 27, 2014 at 22:59 UTC
6bd4a6ddb2f1d5e0fde9d803b2bf6f4d1b95bbf6
2 files changed
+10
-7
epictest/addcat_test.go
+5
-3
@@ -94,14 +94,16 @@ func DirectAddCat(data []byte, conf Config) error {
94
Bandwidth: math.MaxInt32,
95
})
96
97
- if len(mn.Peers()) < numPeers {
97
+ peers := mn.Peers()
98
+ if len(peers) < numPeers {
99
return errors.New("test initialization error")
100
}
100
- adder, err := makeCore(ctx, MocknetTestRepo(mn.Peers()[0], mn.Net(mn.Peers()[0]), conf))
101
+
102
+ adder, err := makeCore(ctx, MocknetTestRepo(peers[0], mn.Net(peers[0]), conf))
103
if err != nil {
104
return err
105
}
104
- catter, err := makeCore(ctx, MocknetTestRepo(mn.Peers()[1], mn.Net(mn.Peers()[1]), conf))
106
+ catter, err := makeCore(ctx, MocknetTestRepo(peers[1], mn.Net(peers[1]), conf))
107
if err != nil {
108
return err
109
}
epictest/three_legged_cat_test.go
+5
-4
@@ -38,18 +38,19 @@ func RunThreeLeggedCat(data []byte, conf Config) error {
38
Bandwidth: math.MaxInt32,
39
})
40
41
- if len(mn.Peers()) < numPeers {
41
+ peers := mn.Peers()
42
+ if len(peers) < numPeers {
43
return errors.New("test initialization error")
44
}
44
- adder, err := makeCore(ctx, MocknetTestRepo(mn.Peers()[0], mn.Net(mn.Peers()[0]), conf))
45
+ adder, err := makeCore(ctx, MocknetTestRepo(peers[0], mn.Net(peers[0]), conf))
46
if err != nil {
47
return err
48
}
48
- catter, err := makeCore(ctx, MocknetTestRepo(mn.Peers()[1], mn.Net(mn.Peers()[1]), conf))
49
+ catter, err := makeCore(ctx, MocknetTestRepo(peers[1], mn.Net(peers[1]), conf))
50
if err != nil {
51
return err
52
}
52
- bootstrap, err := makeCore(ctx, MocknetTestRepo(mn.Peers()[2], mn.Net(mn.Peers()[2]), conf))
53
+ bootstrap, err := makeCore(ctx, MocknetTestRepo(peers[2], mn.Net(peers[2]), conf))
54
if err != nil {
55
return err
56
}