|
|
|
|
@ -348,6 +348,53 @@ func TestControl(t *testing.T) { |
|
|
|
|
c3.checkNoStatus(t) |
|
|
|
|
c4.checkNoStatus(t) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
t.Run("set hostinfo", func(t *testing.T) { |
|
|
|
|
c1.SetHostinfo(&tailcfg.Hostinfo{ |
|
|
|
|
BackendLogID: "set-hostinfo-test", |
|
|
|
|
OS: "linux", |
|
|
|
|
}) |
|
|
|
|
c1.waitStatus(t, stateSynchronized) |
|
|
|
|
c2NetMap := c2.status(t).New.NetMap |
|
|
|
|
if len(c2NetMap.Peers) != 1 { |
|
|
|
|
t.Fatalf("wrong number of peers: %v", c2NetMap.Peers) |
|
|
|
|
} |
|
|
|
|
peer := c2NetMap.Peers[0] |
|
|
|
|
if !peer.KeepAlive { |
|
|
|
|
t.Errorf("peer KeepAlive=false, want true") |
|
|
|
|
} |
|
|
|
|
if peer.Hostinfo.OS != "linux" { |
|
|
|
|
t.Errorf("peer hostinfo does not have OS: %v", peer.Hostinfo) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
c2.SetHostinfo(&tailcfg.Hostinfo{ |
|
|
|
|
BackendLogID: "set-hostinfo-test", |
|
|
|
|
OS: "iOS", |
|
|
|
|
}) |
|
|
|
|
c1NetMap = c1.status(t).New.NetMap |
|
|
|
|
c2NetMap = c2.status(t).New.NetMap |
|
|
|
|
if len(c1NetMap.Peers) != 1 { |
|
|
|
|
t.Fatalf("wrong number of peers: %v", c1NetMap.Peers) |
|
|
|
|
} |
|
|
|
|
if len(c2NetMap.Peers) != 1 { |
|
|
|
|
t.Fatalf("wrong number of peers: %v", c2NetMap.Peers) |
|
|
|
|
} |
|
|
|
|
peer = c1NetMap.Peers[0] |
|
|
|
|
if peer.KeepAlive { |
|
|
|
|
t.Errorf("peer KeepAlive=true, want false") |
|
|
|
|
} |
|
|
|
|
if peer.Hostinfo.OS != "iOS" { |
|
|
|
|
t.Errorf("peer hostinfo does not have OS: %v", peer.Hostinfo) |
|
|
|
|
} |
|
|
|
|
peer = c2NetMap.Peers[0] |
|
|
|
|
if peer.KeepAlive { |
|
|
|
|
t.Errorf("peer KeepAlive=true, want false") |
|
|
|
|
} |
|
|
|
|
if peer.Hostinfo.OS != "linux" { |
|
|
|
|
t.Errorf("peer hostinfo does not have OS: %v", peer.Hostinfo) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func hasStringsSuffix(list, suffix []string) bool { |
|
|
|
|
|