Add initial pingallbyhostname
@@ -74,3 +74,58 @@ func TestPingAllByIP(t *testing.T) {
// t.Errorf("failed to tear down scenario: %s", err)
// }
}
+
+func TestPingAllByHostname(t *testing.T) {
+ IntegrationSkip(t)
+
+ scenario, err := NewScenario()
+ if err != nil {
+ t.Errorf("failed to create scenario: %s", err)
+ }
+
+ spec := map[string]int{
+ "namespace3": len(TailscaleVersions),
+ "namespace4": len(TailscaleVersions),
+ }
+
+ err = scenario.CreateHeadscaleEnv(spec)
+ if err != nil {
+ t.Errorf("failed to create headscale environment: %s", err)
+ }
+
+ var allClients []*tsic.TailscaleInContainer
+
+ for namespace := range spec {
+ clients, err := scenario.GetClients(namespace)
+ if err != nil {
+ t.Errorf("failed to get tailscale clients: %s", err)
+ }
+
+ allClients = append(allClients, clients...)
+ }
+
+ err = 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 _, peer := range allClients {
+ err := client.Ping(peer.Hostname)
+ if err != nil {
+ t.Errorf("failed to ping %s from %s: %s", peer.Hostname, client.Hostname, err)
+ } else {
+ success++
+ }
+ }
+ }
+
+ t.Logf("%d successful pings out of %d", success, len(allClients)*len(allClients))
+
+ err = scenario.Shutdown()
+ if err != nil {
+ t.Errorf("failed to tear down scenario: %s", err)
+ }
+}
