mirror of
https://github.com/juanfont/headscale.git
synced 2024-11-29 18:33:05 +00:00
Add more test cases to prove that peers and shared peers work properly
This commit is contained in:
parent
2eb57e6288
commit
f6a7564ec8
2 changed files with 50 additions and 0 deletions
|
@ -2,6 +2,7 @@ package headscale
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
"gopkg.in/check.v1"
|
"gopkg.in/check.v1"
|
||||||
)
|
)
|
||||||
|
@ -116,3 +117,43 @@ func (s *Suite) TestHardDeleteMachine(c *check.C) {
|
||||||
_, err = h.GetMachine(n.Name, "testmachine3")
|
_, err = h.GetMachine(n.Name, "testmachine3")
|
||||||
c.Assert(err, check.NotNil)
|
c.Assert(err, check.NotNil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *Suite) TestGetDirectPeers(c *check.C) {
|
||||||
|
n, err := h.CreateNamespace("test")
|
||||||
|
c.Assert(err, check.IsNil)
|
||||||
|
|
||||||
|
pak, err := h.CreatePreAuthKey(n.Name, false, false, nil)
|
||||||
|
c.Assert(err, check.IsNil)
|
||||||
|
|
||||||
|
_, err = h.GetMachineByID(0)
|
||||||
|
c.Assert(err, check.NotNil)
|
||||||
|
|
||||||
|
for i := 0; i <= 10; i++ {
|
||||||
|
m := Machine{
|
||||||
|
ID: uint64(i),
|
||||||
|
MachineKey: "foo" + strconv.Itoa(i),
|
||||||
|
NodeKey: "bar" + strconv.Itoa(i),
|
||||||
|
DiscoKey: "faa" + strconv.Itoa(i),
|
||||||
|
Name: "testmachine" + strconv.Itoa(i),
|
||||||
|
NamespaceID: n.ID,
|
||||||
|
Registered: true,
|
||||||
|
RegisterMethod: "authKey",
|
||||||
|
AuthKeyID: uint(pak.ID),
|
||||||
|
}
|
||||||
|
h.db.Save(&m)
|
||||||
|
}
|
||||||
|
|
||||||
|
m1, err := h.GetMachineByID(0)
|
||||||
|
c.Assert(err, check.IsNil)
|
||||||
|
|
||||||
|
_, err = m1.GetHostInfo()
|
||||||
|
c.Assert(err, check.IsNil)
|
||||||
|
|
||||||
|
peers, err := h.getDirectPeers(m1)
|
||||||
|
c.Assert(err, check.IsNil)
|
||||||
|
|
||||||
|
c.Assert(len(peers), check.Equals, 9)
|
||||||
|
c.Assert(peers[0].Name, check.Equals, "testmachine2")
|
||||||
|
c.Assert(peers[5].Name, check.Equals, "testmachine7")
|
||||||
|
c.Assert(peers[8].Name, check.Equals, "testmachine10")
|
||||||
|
}
|
||||||
|
|
|
@ -245,6 +245,7 @@ func (s *Suite) TestDoNotIncludeRoutesOnShared(c *check.C) {
|
||||||
p1sAfter, err := h.getPeers(m1)
|
p1sAfter, err := h.getPeers(m1)
|
||||||
c.Assert(err, check.IsNil)
|
c.Assert(err, check.IsNil)
|
||||||
c.Assert(len(p1sAfter), check.Equals, 1)
|
c.Assert(len(p1sAfter), check.Equals, 1)
|
||||||
|
c.Assert(p1sAfter[0].Name, check.Equals, "test_get_shared_nodes_2")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Suite) TestComplexSharingAcrossNamespaces(c *check.C) {
|
func (s *Suite) TestComplexSharingAcrossNamespaces(c *check.C) {
|
||||||
|
@ -343,6 +344,7 @@ func (s *Suite) TestComplexSharingAcrossNamespaces(c *check.C) {
|
||||||
p1s, err := h.getPeers(m1)
|
p1s, err := h.getPeers(m1)
|
||||||
c.Assert(err, check.IsNil)
|
c.Assert(err, check.IsNil)
|
||||||
c.Assert(len(p1s), check.Equals, 1) // nodes 1 and 4
|
c.Assert(len(p1s), check.Equals, 1) // nodes 1 and 4
|
||||||
|
c.Assert(p1s[0].Name, check.Equals, "test_get_shared_nodes_4")
|
||||||
|
|
||||||
err = h.AddSharedMachineToNamespace(m2, n1)
|
err = h.AddSharedMachineToNamespace(m2, n1)
|
||||||
c.Assert(err, check.IsNil)
|
c.Assert(err, check.IsNil)
|
||||||
|
@ -350,6 +352,13 @@ func (s *Suite) TestComplexSharingAcrossNamespaces(c *check.C) {
|
||||||
p1sAfter, err := h.getPeers(m1)
|
p1sAfter, err := h.getPeers(m1)
|
||||||
c.Assert(err, check.IsNil)
|
c.Assert(err, check.IsNil)
|
||||||
c.Assert(len(p1sAfter), check.Equals, 2) // nodes 1, 2, 4
|
c.Assert(len(p1sAfter), check.Equals, 2) // nodes 1, 2, 4
|
||||||
|
c.Assert(p1sAfter[0].Name, check.Equals, "test_get_shared_nodes_2")
|
||||||
|
c.Assert(p1sAfter[1].Name, check.Equals, "test_get_shared_nodes_4")
|
||||||
|
|
||||||
|
node1shared, err := h.getShared(m1)
|
||||||
|
c.Assert(err, check.IsNil)
|
||||||
|
c.Assert(len(node1shared), check.Equals, 1) // nodes 1, 2, 4
|
||||||
|
c.Assert(node1shared[0].Name, check.Equals, "test_get_shared_nodes_2")
|
||||||
|
|
||||||
pAlone, err := h.getPeers(m3)
|
pAlone, err := h.getPeers(m3)
|
||||||
c.Assert(err, check.IsNil)
|
c.Assert(err, check.IsNil)
|
||||||
|
|
Loading…
Reference in a new issue