From 3e1e07e8c153517155beb727b5be4cec2c1e9903 Mon Sep 17 00:00:00 2001 From: Juan Font Alonso Date: Thu, 14 Oct 2021 22:37:44 +0200 Subject: [PATCH] Fixed integration tests for shared nodes --- integration_test.go | 70 ++++++++++++++++++++++----------------------- 1 file changed, 34 insertions(+), 36 deletions(-) diff --git a/integration_test.go b/integration_test.go index 9bc51f99..80410361 100644 --- a/integration_test.go +++ b/integration_test.go @@ -58,11 +58,11 @@ func TestIntegrationTestSuite(t *testing.T) { s.namespaces = map[string]TestNamespace{ "main": { - count: 20, + count: 5, tailscales: make(map[string]dockertest.Resource), }, "shared": { - count: 5, + count: 2, tailscales: make(map[string]dockertest.Resource), }, } @@ -503,44 +503,42 @@ func (s *IntegrationTestSuite) TestSharedNodes() { for hostname := range shared.tailscales { assert.Contains(s.T(), result, hostname) } + time.Sleep(100 * time.Second) // Wait for the nodes to receive updates - // TODO(kradalby): Figure out why these connections are not set up - // // TODO: See if we can have a more deterministic wait here. - // time.Sleep(100 * time.Second) + mainIps, err := getIPs(main.tailscales) + assert.Nil(s.T(), err) - // mainIps, err := getIPs(main.tailscales) - // assert.Nil(s.T(), err) + sharedIps, err := getIPs(shared.tailscales) + assert.Nil(s.T(), err) - // sharedIps, err := getIPs(shared.tailscales) - // assert.Nil(s.T(), err) + for hostname, tailscale := range main.tailscales { + for peername, ip := range sharedIps { + s.T().Run(fmt.Sprintf("%s-%s", hostname, peername), func(t *testing.T) { + // We currently cant ping ourselves, so skip that. + if peername != hostname { + // We are only interested in "direct ping" which means what we + // might need a couple of more attempts before reaching the node. + command := []string{ + "tailscale", "ping", + "--timeout=15s", + "--c=20", + "--until-direct=true", + ip.String(), + } - // for hostname, tailscale := range main.tailscales { - // for peername, ip := range sharedIps { - // s.T().Run(fmt.Sprintf("%s-%s", hostname, peername), func(t *testing.T) { - // // We currently cant ping ourselves, so skip that. - // if peername != hostname { - // // We are only interested in "direct ping" which means what we - // // might need a couple of more attempts before reaching the node. - // command := []string{ - // "tailscale", "ping", - // "--timeout=1s", - // "--c=20", - // "--until-direct=true", - // ip.String(), - // } - - // fmt.Printf("Pinging from %s (%s) to %s (%s)\n", hostname, mainIps[hostname], peername, ip) - // result, err := executeCommand( - // &tailscale, - // command, - // ) - // assert.Nil(t, err) - // fmt.Printf("Result for %s: %s\n", hostname, result) - // assert.Contains(t, result, "pong") - // } - // }) - // } - // } + fmt.Printf("Pinging from %s (%s) to %s (%s)\n", hostname, mainIps[hostname], peername, ip) + result, err := executeCommand( + &tailscale, + command, + []string{}, + ) + assert.Nil(t, err) + fmt.Printf("Result for %s: %s\n", hostname, result) + assert.Contains(t, result, "pong") + } + }) + } + } } func (s *IntegrationTestSuite) TestTailDrop() {