@cryptotaxi247 / kubo / commits / 6bd4a6ddb

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 }