From 566901f92d0565004fd2a553f2e22d4794b3099f Mon Sep 17 00:00:00 2001 From: Ferenc Szabo Date: Wed, 19 Dec 2018 14:05:32 +0100 Subject: [PATCH] p2p/simulations: add more test cases for ConnectNodesFull() As I surprised myself it works even with 0 or 1 nodes. --- p2p/simulations/connect_test.go | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/p2p/simulations/connect_test.go b/p2p/simulations/connect_test.go index fd2bf5c845..47e4dbb342 100644 --- a/p2p/simulations/connect_test.go +++ b/p2p/simulations/connect_test.go @@ -125,15 +125,30 @@ func TestConnectToRandomNode(t *testing.T) { } func TestConnectNodesFull(t *testing.T) { - net, ids := newTestNetwork(t, 12) - defer net.Shutdown() - - err := net.ConnectNodesFull(ids) - if err != nil { - t.Fatal(err) + tests := []struct { + name string + nodeCount int + }{ + {name: "no node", nodeCount: 0}, + {name: "single node", nodeCount: 1}, + {name: "2 nodes", nodeCount: 2}, + {name: "3 nodes", nodeCount: 3}, + {name: "even number of nodes", nodeCount: 12}, + {name: "odd number of nodes", nodeCount: 13}, } + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + net, ids := newTestNetwork(t, test.nodeCount) + defer net.Shutdown() - VerifyFull(t, net, ids) + err := net.ConnectNodesFull(ids) + if err != nil { + t.Fatal(err) + } + + VerifyFull(t, net, ids) + }) + } } func TestConnectNodesChain(t *testing.T) {