github.com/Oyster-zx/tendermint@v0.34.24-fork/test/e2e/tests/net_test.go (about) 1 package e2e_test 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 8 e2e "github.com/tendermint/tendermint/test/e2e/pkg" 9 ) 10 11 // Tests that all nodes have peered with each other, regardless of discovery method. 12 func TestNet_Peers(t *testing.T) { 13 // FIXME Skip test since nodes aren't always able to fully mesh 14 t.SkipNow() 15 16 testNode(t, func(t *testing.T, node e2e.Node) { 17 // Seed nodes shouldn't necessarily mesh with the entire network. 18 if node.Mode == e2e.ModeSeed { 19 return 20 } 21 22 client, err := node.Client() 23 require.NoError(t, err) 24 netInfo, err := client.NetInfo(ctx) 25 require.NoError(t, err) 26 27 require.Equal(t, len(node.Testnet.Nodes)-1, netInfo.NPeers, 28 "node is not fully meshed with peers") 29 30 seen := map[string]bool{} 31 for _, n := range node.Testnet.Nodes { 32 seen[n.Name] = (n.Name == node.Name) // we've clearly seen ourself 33 } 34 for _, peerInfo := range netInfo.Peers { 35 peer := node.Testnet.LookupNode(peerInfo.NodeInfo.Moniker) 36 require.NotNil(t, peer, "unknown node %v", peerInfo.NodeInfo.Moniker) 37 require.Equal(t, peer.IP.String(), peerInfo.RemoteIP, 38 "unexpected IP address for peer %v", peer.Name) 39 seen[peerInfo.NodeInfo.Moniker] = true 40 } 41 42 for name := range seen { 43 require.True(t, seen[name], "node %v not peered with %v", node.Name, name) 44 } 45 }) 46 }