github.com/linapex/ethereum-dpos-chinese@v0.0.0-20190316121959-b78b3a4a1ece/swarm/network/simulation/kademlia_test.go (about) 1 2 //<developer> 3 // <name>linapex 曹一峰</name> 4 // <email>linapex@163.com</email> 5 // <wx>superexc</wx> 6 // <qqgroup>128148617</qqgroup> 7 // <url>https://jsq.ink</url> 8 // <role>pku engineer</role> 9 // <date>2019-03-16 12:09:47</date> 10 //</624342673959948288> 11 12 // 13 // 14 // 15 // 16 // 17 // 18 // 19 // 20 // 21 // 22 // 23 // 24 // 25 // 26 // 27 28 package simulation 29 30 import ( 31 "context" 32 "sync" 33 "testing" 34 "time" 35 36 "github.com/ethereum/go-ethereum/node" 37 "github.com/ethereum/go-ethereum/p2p/simulations/adapters" 38 "github.com/ethereum/go-ethereum/swarm/network" 39 ) 40 41 func TestWaitTillHealthy(t *testing.T) { 42 sim := New(map[string]ServiceFunc{ 43 "bzz": func(ctx *adapters.ServiceContext, b *sync.Map) (node.Service, func(), error) { 44 addr := network.NewAddrFromNodeID(ctx.Config.ID) 45 hp := network.NewHiveParams() 46 hp.Discovery = false 47 config := &network.BzzConfig{ 48 OverlayAddr: addr.Over(), 49 UnderlayAddr: addr.Under(), 50 HiveParams: hp, 51 } 52 kad := network.NewKademlia(addr.Over(), network.NewKadParams()) 53 // 54 // 55 b.Store(BucketKeyKademlia, kad) 56 return network.NewBzz(config, kad, nil, nil, nil), nil, nil 57 }, 58 }) 59 defer sim.Close() 60 61 _, err := sim.AddNodesAndConnectRing(10) 62 if err != nil { 63 t.Fatal(err) 64 } 65 66 ctx, cancel := context.WithTimeout(context.Background(), 120*time.Second) 67 defer cancel() 68 ill, err := sim.WaitTillHealthy(ctx, 2) 69 if err != nil { 70 for id, kad := range ill { 71 t.Log("Node", id) 72 t.Log(kad.String()) 73 } 74 if err != nil { 75 t.Fatal(err) 76 } 77 } 78 } 79