MCPcopy
hub / github.com/tailscale/tailscale / TestMapAgainstTestControl

Function TestMapAgainstTestControl

control/tsp/map_test.go:25–137  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

23)
24
25func TestMapAgainstTestControl(t *testing.T) {
26 ctrl := &testcontrol.Server{}
27 ctrl.HTTPTestServer = httptest.NewUnstartedServer(ctrl)
28 ctrl.HTTPTestServer.Start()
29 t.Cleanup(ctrl.HTTPTestServer.Close)
30 baseURL := ctrl.HTTPTestServer.URL
31
32 ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
33 defer cancel()
34
35 ht := new(health.Tracker)
36
37 serverKey, err := DiscoverServerKey(ctx, baseURL)
38 if err != nil {
39 t.Fatalf("DiscoverServerKey: %v", err)
40 }
41
42 register := func(hostname string) (nodeKey key.NodePrivate, machineKey key.MachinePrivate) {
43 t.Helper()
44 nodeKey = key.NewNode()
45 machineKey = key.NewMachine()
46 c, err := NewClient(ClientOpts{
47 ServerURL: baseURL,
48 MachineKey: machineKey,
49 HealthTracker: ht,
50 })
51 if err != nil {
52 t.Fatalf("NewClient %s: %v", hostname, err)
53 }
54 defer c.Close()
55 c.SetControlPublicKey(serverKey)
56 if _, err := c.Register(ctx, RegisterOpts{
57 NodeKey: nodeKey,
58 Hostinfo: &tailcfg.Hostinfo{Hostname: hostname},
59 }); err != nil {
60 t.Fatalf("Register %s: %v", hostname, err)
61 }
62 return nodeKey, machineKey
63 }
64
65 nodeKeyA, machineKeyA := register("a")
66 nodeKeyB, _ := register("b")
67
68 clientA, err := NewClient(ClientOpts{
69 ServerURL: baseURL,
70 MachineKey: machineKeyA,
71 HealthTracker: ht,
72 })
73 if err != nil {
74 t.Fatalf("NewClient A: %v", err)
75 }
76 defer clientA.Close()
77 clientA.SetControlPublicKey(serverKey)
78
79 session, err := clientA.Map(ctx, MapOpts{
80 NodeKey: nodeKeyA,
81 Hostinfo: &tailcfg.Hostinfo{Hostname: "a"},
82 Stream: true,

Callers

nothing calls this directly

Calls 15

CloseMethod · 0.95
SetControlPublicKeyMethod · 0.95
RegisterMethod · 0.95
MapMethod · 0.95
AddRawMapResponseMethod · 0.95
NewNodeFunction · 0.92
NewMachineFunction · 0.92
DiscoverServerKeyFunction · 0.85
registerFunction · 0.85
NewClientFunction · 0.70
StartMethod · 0.65
CleanupMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…