@@ -37,21 +37,19 @@ import (
3737 "tailscale.com/types/netmap"
3838 "tailscale.com/types/persist"
3939 "tailscale.com/types/tkatype"
40- "tailscale.com/util/eventbus"
4140 "tailscale.com/util/eventbus/eventbustest"
4241 "tailscale.com/util/must"
4342 "tailscale.com/util/set"
4443)
4544
46- func fakeControlClient (t * testing.T , c * http.Client ) ( * controlclient.Auto , * eventbus. Bus ) {
45+ func fakeControlClient (t * testing.T , c * http.Client ) * controlclient.Auto {
4746 hi := hostinfo .New ()
4847 ni := tailcfg.NetInfo {LinkType : "wired" }
4948 hi .NetInfo = & ni
5049 bus := eventbustest .NewBus (t )
5150
5251 k := key .NewMachine ()
5352 dialer := tsdial .NewDialer (netmon .NewStatic ())
54- dialer .SetBus (bus )
5553 opts := controlclient.Options {
5654 ServerURL : "https://example.com" ,
5755 Hostinfo : hi ,
@@ -70,10 +68,11 @@ func fakeControlClient(t *testing.T, c *http.Client) (*controlclient.Auto, *even
7068 if err != nil {
7169 t .Fatal (err )
7270 }
73- return cc , bus
71+ return cc
7472}
7573
7674func fakeNoiseServer (t * testing.T , handler http.HandlerFunc ) (* httptest.Server , * http.Client ) {
75+ t .Helper ()
7776 ts := httptest .NewUnstartedServer (handler )
7877 ts .StartTLS ()
7978 client := ts .Client ()
@@ -84,6 +83,17 @@ func fakeNoiseServer(t *testing.T, handler http.HandlerFunc) (*httptest.Server,
8483 return ts , client
8584}
8685
86+ func setupProfileManager (t * testing.T , nodePriv key.NodePrivate , nlPriv key.NLPrivate ) * profileManager {
87+ pm := must .Get (newProfileManager (new (mem.Store ), t .Logf , health .NewTracker (eventbustest .NewBus (t ))))
88+ must .Do (pm .SetPrefs ((& ipn.Prefs {
89+ Persist : & persist.Persist {
90+ PrivateNodeKey : nodePriv ,
91+ NetworkLockKey : nlPriv ,
92+ },
93+ }).View (), ipn.NetworkProfile {}))
94+ return pm
95+ }
96+
8797func TestTKAEnablementFlow (t * testing.T ) {
8898 nodePriv := key .NewNode ()
8999
@@ -158,14 +168,8 @@ func TestTKAEnablementFlow(t *testing.T) {
158168 defer ts .Close ()
159169 temp := t .TempDir ()
160170
161- cc , bus := fakeControlClient (t , client )
162- pm := must .Get (newProfileManager (new (mem.Store ), t .Logf , health .NewTracker (bus )))
163- must .Do (pm .SetPrefs ((& ipn.Prefs {
164- Persist : & persist.Persist {
165- PrivateNodeKey : nodePriv ,
166- NetworkLockKey : nlPriv ,
167- },
168- }).View (), ipn.NetworkProfile {}))
171+ cc := fakeControlClient (t , client )
172+ pm := setupProfileManager (t , nodePriv , nlPriv )
169173 b := LocalBackend {
170174 capTailnetLock : true ,
171175 varRoot : temp ,
@@ -199,13 +203,7 @@ func TestTKADisablementFlow(t *testing.T) {
199203 nlPriv := key .NewNLPrivate ()
200204 key := tka.Key {Kind : tka .Key25519 , Public : nlPriv .Public ().Verifier (), Votes : 2 }
201205
202- pm := must .Get (newProfileManager (new (mem.Store ), t .Logf , health .NewTracker (eventbustest .NewBus (t ))))
203- must .Do (pm .SetPrefs ((& ipn.Prefs {
204- Persist : & persist.Persist {
205- PrivateNodeKey : nodePriv ,
206- NetworkLockKey : nlPriv ,
207- },
208- }).View (), ipn.NetworkProfile {}))
206+ pm := setupProfileManager (t , nodePriv , nlPriv )
209207
210208 temp := t .TempDir ()
211209 tkaPath := filepath .Join (temp , "tka-profile" , string (pm .CurrentProfile ().ID ()))
@@ -267,7 +265,7 @@ func TestTKADisablementFlow(t *testing.T) {
267265 }))
268266 defer ts .Close ()
269267
270- cc , _ := fakeControlClient (t , client )
268+ cc := fakeControlClient (t , client )
271269 b := LocalBackend {
272270 varRoot : temp ,
273271 cc : cc ,
@@ -391,13 +389,7 @@ func TestTKASync(t *testing.T) {
391389 t .Run (tc .name , func (t * testing.T ) {
392390 nodePriv := key .NewNode ()
393391 nlPriv := key .NewNLPrivate ()
394- pm := must .Get (newProfileManager (new (mem.Store ), t .Logf , health .NewTracker (eventbustest .NewBus (t ))))
395- must .Do (pm .SetPrefs ((& ipn.Prefs {
396- Persist : & persist.Persist {
397- PrivateNodeKey : nodePriv ,
398- NetworkLockKey : nlPriv ,
399- },
400- }).View (), ipn.NetworkProfile {}))
392+ pm := setupProfileManager (t , nodePriv , nlPriv )
401393
402394 // Setup the tka authority on the control plane.
403395 key := tka.Key {Kind : tka .Key25519 , Public : nlPriv .Public ().Verifier (), Votes : 2 }
@@ -518,7 +510,7 @@ func TestTKASync(t *testing.T) {
518510 defer ts .Close ()
519511
520512 // Setup the client.
521- cc , _ := fakeControlClient (t , client )
513+ cc := fakeControlClient (t , client )
522514 b := LocalBackend {
523515 varRoot : temp ,
524516 cc : cc ,
@@ -560,13 +552,7 @@ func TestTKASyncTriggersCompact(t *testing.T) {
560552
561553 nodePriv := key .NewNode ()
562554 nlPriv := key .NewNLPrivate ()
563- pm := must .Get (newProfileManager (new (mem.Store ), t .Logf , health .NewTracker (eventbustest .NewBus (t ))))
564- must .Do (pm .SetPrefs ((& ipn.Prefs {
565- Persist : & persist.Persist {
566- PrivateNodeKey : nodePriv ,
567- NetworkLockKey : nlPriv ,
568- },
569- }).View (), ipn.NetworkProfile {}))
555+ pm := setupProfileManager (t , nodePriv , nlPriv )
570556
571557 // Create a clock, and roll it back by 30 days.
572558 //
@@ -702,7 +688,7 @@ func TestTKASyncTriggersCompact(t *testing.T) {
702688 defer ts .Close ()
703689
704690 // Setup the client.
705- cc , _ := fakeControlClient (t , client )
691+ cc := fakeControlClient (t , client )
706692 b := LocalBackend {
707693 cc : cc ,
708694 ccAuto : cc ,
@@ -923,13 +909,7 @@ func TestTKADisable(t *testing.T) {
923909 disablementSecret := bytes .Repeat ([]byte {0xa5 }, 32 )
924910 nlPriv := key .NewNLPrivate ()
925911
926- pm := must .Get (newProfileManager (new (mem.Store ), t .Logf , health .NewTracker (eventbustest .NewBus (t ))))
927- must .Do (pm .SetPrefs ((& ipn.Prefs {
928- Persist : & persist.Persist {
929- PrivateNodeKey : nodePriv ,
930- NetworkLockKey : nlPriv ,
931- },
932- }).View (), ipn.NetworkProfile {}))
912+ pm := setupProfileManager (t , nodePriv , nlPriv )
933913
934914 temp := t .TempDir ()
935915 tkaPath := filepath .Join (temp , "tka-profile" , string (pm .CurrentProfile ().ID ()))
@@ -985,7 +965,7 @@ func TestTKADisable(t *testing.T) {
985965 }))
986966 defer ts .Close ()
987967
988- cc , _ := fakeControlClient (t , client )
968+ cc := fakeControlClient (t , client )
989969 b := LocalBackend {
990970 varRoot : temp ,
991971 cc : cc ,
@@ -1014,13 +994,7 @@ func TestTKASign(t *testing.T) {
1014994 toSign := key .NewNode ()
1015995 nlPriv := key .NewNLPrivate ()
1016996
1017- pm := must .Get (newProfileManager (new (mem.Store ), t .Logf , health .NewTracker (eventbustest .NewBus (t ))))
1018- must .Do (pm .SetPrefs ((& ipn.Prefs {
1019- Persist : & persist.Persist {
1020- PrivateNodeKey : nodePriv ,
1021- NetworkLockKey : nlPriv ,
1022- },
1023- }).View (), ipn.NetworkProfile {}))
997+ pm := setupProfileManager (t , nodePriv , nlPriv )
1024998
1025999 // Make a fake TKA authority, to seed local state.
10261000 disablementSecret := bytes .Repeat ([]byte {0xa5 }, 32 )
@@ -1076,7 +1050,7 @@ func TestTKASign(t *testing.T) {
10761050 }
10771051 }))
10781052 defer ts .Close ()
1079- cc , _ := fakeControlClient (t , client )
1053+ cc := fakeControlClient (t , client )
10801054 b := LocalBackend {
10811055 varRoot : temp ,
10821056 cc : cc ,
@@ -1103,13 +1077,7 @@ func TestTKAForceDisable(t *testing.T) {
11031077 nlPriv := key .NewNLPrivate ()
11041078 key := tka.Key {Kind : tka .Key25519 , Public : nlPriv .Public ().Verifier (), Votes : 2 }
11051079
1106- pm := must .Get (newProfileManager (new (mem.Store ), t .Logf , health .NewTracker (eventbustest .NewBus (t ))))
1107- must .Do (pm .SetPrefs ((& ipn.Prefs {
1108- Persist : & persist.Persist {
1109- PrivateNodeKey : nodePriv ,
1110- NetworkLockKey : nlPriv ,
1111- },
1112- }).View (), ipn.NetworkProfile {}))
1080+ pm := setupProfileManager (t , nodePriv , nlPriv )
11131081
11141082 temp := t .TempDir ()
11151083 tkaPath := filepath .Join (temp , "tka-profile" , string (pm .CurrentProfile ().ID ()))
@@ -1156,7 +1124,7 @@ func TestTKAForceDisable(t *testing.T) {
11561124 }))
11571125 defer ts .Close ()
11581126
1159- cc , _ := fakeControlClient (t , client )
1127+ cc := fakeControlClient (t , client )
11601128 sys := tsd .NewSystem ()
11611129 sys .Set (pm .Store ())
11621130
@@ -1201,13 +1169,7 @@ func TestTKAAffectedSigs(t *testing.T) {
12011169 // toSign := key.NewNode()
12021170 nlPriv := key .NewNLPrivate ()
12031171
1204- pm := must .Get (newProfileManager (new (mem.Store ), t .Logf , health .NewTracker (eventbustest .NewBus (t ))))
1205- must .Do (pm .SetPrefs ((& ipn.Prefs {
1206- Persist : & persist.Persist {
1207- PrivateNodeKey : nodePriv ,
1208- NetworkLockKey : nlPriv ,
1209- },
1210- }).View (), ipn.NetworkProfile {}))
1172+ pm := setupProfileManager (t , nodePriv , nlPriv )
12111173
12121174 // Make a fake TKA authority, to seed local state.
12131175 disablementSecret := bytes .Repeat ([]byte {0xa5 }, 32 )
@@ -1292,7 +1254,7 @@ func TestTKAAffectedSigs(t *testing.T) {
12921254 }
12931255 }))
12941256 defer ts .Close ()
1295- cc , _ := fakeControlClient (t , client )
1257+ cc := fakeControlClient (t , client )
12961258 b := LocalBackend {
12971259 varRoot : temp ,
12981260 cc : cc ,
@@ -1334,13 +1296,7 @@ func TestTKARecoverCompromisedKeyFlow(t *testing.T) {
13341296 cosignPriv := key .NewNLPrivate ()
13351297 compromisedPriv := key .NewNLPrivate ()
13361298
1337- pm := must .Get (newProfileManager (new (mem.Store ), t .Logf , health .NewTracker (eventbustest .NewBus (t ))))
1338- must .Do (pm .SetPrefs ((& ipn.Prefs {
1339- Persist : & persist.Persist {
1340- PrivateNodeKey : nodePriv ,
1341- NetworkLockKey : nlPriv ,
1342- },
1343- }).View (), ipn.NetworkProfile {}))
1299+ pm := setupProfileManager (t , nodePriv , nlPriv )
13441300
13451301 // Make a fake TKA authority, to seed local state.
13461302 disablementSecret := bytes .Repeat ([]byte {0xa5 }, 32 )
@@ -1404,7 +1360,7 @@ func TestTKARecoverCompromisedKeyFlow(t *testing.T) {
14041360 }
14051361 }))
14061362 defer ts .Close ()
1407- cc , _ := fakeControlClient (t , client )
1363+ cc := fakeControlClient (t , client )
14081364 b := LocalBackend {
14091365 varRoot : temp ,
14101366 cc : cc ,
@@ -1425,13 +1381,7 @@ func TestTKARecoverCompromisedKeyFlow(t *testing.T) {
14251381
14261382 // Cosign using the cosigning key.
14271383 {
1428- pm := must .Get (newProfileManager (new (mem.Store ), t .Logf , health .NewTracker (eventbustest .NewBus (t ))))
1429- must .Do (pm .SetPrefs ((& ipn.Prefs {
1430- Persist : & persist.Persist {
1431- PrivateNodeKey : nodePriv ,
1432- NetworkLockKey : cosignPriv ,
1433- },
1434- }).View (), ipn.NetworkProfile {}))
1384+ pm := setupProfileManager (t , nodePriv , cosignPriv )
14351385 b := LocalBackend {
14361386 varRoot : temp ,
14371387 logf : t .Logf ,
0 commit comments