Skip to content

Commit

Permalink
Port PingAll test to new test suite
Browse files Browse the repository at this point in the history
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
  • Loading branch information
kradalby committed Oct 18, 2022
1 parent 0db608a commit 39bc6f7
Showing 1 changed file with 78 additions and 0 deletions.
78 changes: 78 additions & 0 deletions integration/general_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
package integration

import (
"net/netip"
"testing"

"github.com/juanfont/headscale/integration/tsic"
)

func TestPingAll(t *testing.T) {
IntegrationSkip(t)

scenario, err := NewScenario()
if err != nil {
t.Errorf("failed to create scenario: %s", err)
}

spec := map[string]int{
"namespace1": len(TailscaleVersions),
"namespace2": len(TailscaleVersions),
}

err = scenario.CreateHeadscaleEnv(spec)
if err != nil {
t.Errorf("failed to create headscale environment: %s", err)
}

var allIps []netip.Addr
var allClients []*tsic.TailscaleInContainer

for namespace, count := range spec {
ips, err := scenario.GetIPs(namespace)
if err != nil {
t.Errorf("failed to get tailscale ips: %s", err)
}

if len(ips) != count*2 {
t.Errorf(
"got the wrong amount of tailscale ips, %d != %d",
len(ips),
count*2,
)
}

clients, err := scenario.GetClients(namespace)
if err != nil {
t.Errorf("failed to get tailscale clients: %s", err)
}

allIps = append(allIps, ips...)
allClients = append(allClients, clients...)
}

scenario.WaitForTailscaleSync()
if err != nil {
t.Errorf("failed wait for tailscale clients to be in sync: %s", err)
}

success := 0

for _, client := range allClients {
for _, ip := range allIps {
err := client.Ping(ip)
if err != nil {
t.Errorf("failed to ping %s from %s: %s", ip, client.Hostname, err)
} else {
success++
}
}
}

t.Logf("%d successful pings out of %d", success, len(allClients)*len(allIps))

err = scenario.Shutdown()
if err != nil {
t.Errorf("failed to tear down scenario: %s", err)
}
}

0 comments on commit 39bc6f7

Please sign in to comment.