mirror of
https://github.com/juanfont/headscale.git
synced 2024-11-26 17:03:06 +00:00
Remove sharing from integration tests
This commit is contained in:
parent
24a8e198a1
commit
4ca8181dcb
1 changed files with 4 additions and 108 deletions
|
@ -50,11 +50,11 @@ func TestIntegrationTestSuite(t *testing.T) {
|
||||||
s := new(IntegrationTestSuite)
|
s := new(IntegrationTestSuite)
|
||||||
|
|
||||||
s.namespaces = map[string]TestNamespace{
|
s.namespaces = map[string]TestNamespace{
|
||||||
"main": {
|
"thisspace": {
|
||||||
count: 20,
|
count: 15,
|
||||||
tailscales: make(map[string]dockertest.Resource),
|
tailscales: make(map[string]dockertest.Resource),
|
||||||
},
|
},
|
||||||
"shared": {
|
"otherspace": {
|
||||||
count: 5,
|
count: 5,
|
||||||
tailscales: make(map[string]dockertest.Resource),
|
tailscales: make(map[string]dockertest.Resource),
|
||||||
},
|
},
|
||||||
|
@ -452,6 +452,7 @@ func getIPsfromIPNstate(status ipnstate.Status) []netaddr.IP {
|
||||||
return ips
|
return ips
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Adopt test for cross communication between namespaces
|
||||||
func (s *IntegrationTestSuite) TestPingAllPeersByAddress() {
|
func (s *IntegrationTestSuite) TestPingAllPeersByAddress() {
|
||||||
for _, scales := range s.namespaces {
|
for _, scales := range s.namespaces {
|
||||||
ips, err := getIPs(scales.tailscales)
|
ips, err := getIPs(scales.tailscales)
|
||||||
|
@ -497,111 +498,6 @@ func (s *IntegrationTestSuite) TestPingAllPeersByAddress() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *IntegrationTestSuite) TestSharedNodes() {
|
|
||||||
main := s.namespaces["main"]
|
|
||||||
shared := s.namespaces["shared"]
|
|
||||||
|
|
||||||
result, err := ExecuteCommand(
|
|
||||||
&s.headscale,
|
|
||||||
[]string{
|
|
||||||
"headscale",
|
|
||||||
"nodes",
|
|
||||||
"list",
|
|
||||||
"--output",
|
|
||||||
"json",
|
|
||||||
"--namespace",
|
|
||||||
"shared",
|
|
||||||
},
|
|
||||||
[]string{},
|
|
||||||
)
|
|
||||||
assert.Nil(s.T(), err)
|
|
||||||
|
|
||||||
var machineList []v1.Machine
|
|
||||||
err = json.Unmarshal([]byte(result), &machineList)
|
|
||||||
assert.Nil(s.T(), err)
|
|
||||||
|
|
||||||
for _, machine := range machineList {
|
|
||||||
result, err := ExecuteCommand(
|
|
||||||
&s.headscale,
|
|
||||||
[]string{
|
|
||||||
"headscale",
|
|
||||||
"nodes",
|
|
||||||
"share",
|
|
||||||
"--identifier", fmt.Sprint(machine.Id),
|
|
||||||
"--namespace", "main",
|
|
||||||
},
|
|
||||||
[]string{},
|
|
||||||
)
|
|
||||||
assert.Nil(s.T(), err)
|
|
||||||
|
|
||||||
fmt.Println("Shared node with result: ", result)
|
|
||||||
}
|
|
||||||
|
|
||||||
result, err = ExecuteCommand(
|
|
||||||
&s.headscale,
|
|
||||||
[]string{"headscale", "nodes", "list", "--namespace", "main"},
|
|
||||||
[]string{},
|
|
||||||
)
|
|
||||||
assert.Nil(s.T(), err)
|
|
||||||
fmt.Println("Nodelist after sharing", result)
|
|
||||||
|
|
||||||
// Chck that the correct count of host is present in node list
|
|
||||||
lines := strings.Split(result, "\n")
|
|
||||||
assert.Equal(s.T(), len(main.tailscales)+len(shared.tailscales), len(lines)-2)
|
|
||||||
|
|
||||||
for hostname := range main.tailscales {
|
|
||||||
assert.Contains(s.T(), result, hostname)
|
|
||||||
}
|
|
||||||
|
|
||||||
for hostname := range shared.tailscales {
|
|
||||||
assert.Contains(s.T(), result, hostname)
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO(juanfont): We have to find out why do we need to wait
|
|
||||||
time.Sleep(100 * time.Second) // Wait for the nodes to receive updates
|
|
||||||
|
|
||||||
sharedIps, err := getIPs(shared.tailscales)
|
|
||||||
assert.Nil(s.T(), err)
|
|
||||||
|
|
||||||
for hostname, tailscale := range main.tailscales {
|
|
||||||
for peername, peerIPs := range sharedIps {
|
|
||||||
for i, ip := range peerIPs {
|
|
||||||
// We currently cant ping ourselves, so skip that.
|
|
||||||
if peername == hostname {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
s.T().
|
|
||||||
Run(fmt.Sprintf("%s-%s-%d", hostname, peername, i), func(t *testing.T) {
|
|
||||||
// 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(),
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt.Printf(
|
|
||||||
"Pinging from %s to %s (%s)\n",
|
|
||||||
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() {
|
func (s *IntegrationTestSuite) TestTailDrop() {
|
||||||
for _, scales := range s.namespaces {
|
for _, scales := range s.namespaces {
|
||||||
ips, err := getIPs(scales.tailscales)
|
ips, err := getIPs(scales.tailscales)
|
||||||
|
|
Loading…
Reference in a new issue