|
|
|
|
@ -11,6 +11,7 @@ import ( |
|
|
|
|
"testing" |
|
|
|
|
|
|
|
|
|
"tailscale.com/tailcfg" |
|
|
|
|
"tailscale.com/types/wgkey" |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
func TestUndeltaPeers(t *testing.T) { |
|
|
|
|
@ -91,3 +92,67 @@ func formatNodes(nodes []*tailcfg.Node) string { |
|
|
|
|
} |
|
|
|
|
return sb.String() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func TestNewDirect(t *testing.T) { |
|
|
|
|
hi := NewHostinfo() |
|
|
|
|
ni := tailcfg.NetInfo{LinkType: "wired"} |
|
|
|
|
hi.NetInfo = &ni |
|
|
|
|
|
|
|
|
|
key, err := wgkey.NewPrivate() |
|
|
|
|
if err != nil { |
|
|
|
|
t.Error(err) |
|
|
|
|
} |
|
|
|
|
opts := Options{ServerURL: "https://example.com", MachinePrivateKey: key, Hostinfo: hi} |
|
|
|
|
c, err := NewDirect(opts) |
|
|
|
|
if err != nil { |
|
|
|
|
t.Fatal(err) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if c.serverURL != opts.ServerURL { |
|
|
|
|
t.Errorf("c.serverURL got %v want %v", c.serverURL, opts.ServerURL) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if !hi.Equal(c.hostinfo) { |
|
|
|
|
t.Errorf("c.hostinfo got %v want %v", c.hostinfo, hi) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
changed := c.SetNetInfo(&ni) |
|
|
|
|
if changed { |
|
|
|
|
t.Errorf("c.SetNetInfo(ni) want false got %v", changed) |
|
|
|
|
} |
|
|
|
|
ni = tailcfg.NetInfo{LinkType: "wifi"} |
|
|
|
|
changed = c.SetNetInfo(&ni) |
|
|
|
|
if !changed { |
|
|
|
|
t.Errorf("c.SetNetInfo(ni) want true got %v", changed) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
changed = c.SetHostinfo(hi) |
|
|
|
|
if changed { |
|
|
|
|
t.Errorf("c.SetHostinfo(hi) want false got %v", changed) |
|
|
|
|
} |
|
|
|
|
hi = NewHostinfo() |
|
|
|
|
hi.Hostname = "different host name" |
|
|
|
|
changed = c.SetHostinfo(hi) |
|
|
|
|
if !changed { |
|
|
|
|
t.Errorf("c.SetHostinfo(hi) want true got %v", changed) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
endpoints := []string{"1", "2", "3"} |
|
|
|
|
changed = c.newEndpoints(12, endpoints) |
|
|
|
|
if !changed { |
|
|
|
|
t.Errorf("c.newEndpoints(12) want true got %v", changed) |
|
|
|
|
} |
|
|
|
|
changed = c.newEndpoints(12, endpoints) |
|
|
|
|
if changed { |
|
|
|
|
t.Errorf("c.newEndpoints(12) want false got %v", changed) |
|
|
|
|
} |
|
|
|
|
changed = c.newEndpoints(13, endpoints) |
|
|
|
|
if !changed { |
|
|
|
|
t.Errorf("c.newEndpoints(13) want true got %v", changed) |
|
|
|
|
} |
|
|
|
|
endpoints = []string{"4", "5", "6"} |
|
|
|
|
changed = c.newEndpoints(13, endpoints) |
|
|
|
|
if !changed { |
|
|
|
|
t.Errorf("c.newEndpoints(13) want true got %v", changed) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|