ipn/ipnlocal/local_test: prepare withSuggest for configurable values

Updates tailscale/corp#31011

Signed-off-by: Simon Law <sfllaw@tailscale.com>
This commit is contained in:
Simon Law
2025-08-04 10:36:20 -07:00
parent 834630fedf
commit afebdddcd5

View File

@@ -601,7 +601,7 @@ func TestSetUseExitNodeEnabled(t *testing.T) {
}
func makeExitNode(id tailcfg.NodeID, opts ...peerOptFunc) tailcfg.NodeView {
return makePeer(id, append([]peerOptFunc{withCap(26), withSuggest(), withExitRoutes()}, opts...)...)
return makePeer(id, append([]peerOptFunc{withCap(26), withSuggest(nil), withExitRoutes()}, opts...)...)
}
func TestConfigureExitNode(t *testing.T) {
@@ -2854,8 +2854,8 @@ func TestSetExitNodeIDPolicy(t *testing.T) {
}
func TestUpdateNetmapDeltaAutoExitNode(t *testing.T) {
peer1 := makePeer(1, withCap(26), withSuggest(), withOnline(true), withExitRoutes())
peer2 := makePeer(2, withCap(26), withSuggest(), withOnline(true), withExitRoutes())
peer1 := makePeer(1, withCap(26), withSuggest(nil), withOnline(true), withExitRoutes())
peer2 := makePeer(2, withCap(26), withSuggest(nil), withOnline(true), withExitRoutes())
derpMap := &tailcfg.DERPMap{
Regions: map[int]*tailcfg.DERPRegion{
1: {
@@ -3034,8 +3034,8 @@ func TestAutoExitNodeSetNetInfoCallback(t *testing.T) {
syspolicy.ExitNodeID, "auto:any",
))
syspolicy.MustRegisterStoreForTest(t, "TestStore", setting.DeviceScope, policyStore)
peer1 := makePeer(1, withCap(26), withDERP(3), withSuggest(), withExitRoutes())
peer2 := makePeer(2, withCap(26), withDERP(2), withSuggest(), withExitRoutes())
peer1 := makePeer(1, withCap(26), withDERP(3), withSuggest(nil), withExitRoutes())
peer2 := makePeer(2, withCap(26), withDERP(2), withSuggest(nil), withExitRoutes())
selfNode := tailcfg.Node{
Addresses: []netip.Prefix{
netip.MustParsePrefix("100.64.1.1/32"),
@@ -3100,8 +3100,8 @@ func TestAutoExitNodeSetNetInfoCallback(t *testing.T) {
}
func TestSetControlClientStatusAutoExitNode(t *testing.T) {
peer1 := makePeer(1, withCap(26), withSuggest(), withExitRoutes(), withOnline(true), withNodeKey())
peer2 := makePeer(2, withCap(26), withSuggest(), withExitRoutes(), withOnline(true), withNodeKey())
peer1 := makePeer(1, withCap(26), withSuggest(nil), withExitRoutes(), withOnline(true), withNodeKey())
peer2 := makePeer(2, withCap(26), withSuggest(nil), withExitRoutes(), withOnline(true), withNodeKey())
derpMap := &tailcfg.DERPMap{
Regions: map[int]*tailcfg.DERPRegion{
1: {
@@ -3149,7 +3149,7 @@ func TestSetControlClientStatusAutoExitNode(t *testing.T) {
b.lastSuggestedExitNode = peer2.StableID()
b.sys.MagicSock.Get().SetLastNetcheckReportForTest(b.ctx, report)
b.SetPrefsForTest(b.pm.CurrentPrefs().AsStruct())
offlinePeer2 := makePeer(2, withCap(26), withSuggest(), withExitRoutes(), withOnline(false), withNodeKey())
offlinePeer2 := makePeer(2, withCap(26), withSuggest(nil), withExitRoutes(), withOnline(false), withNodeKey())
updatedNetmap := &netmap.NetworkMap{
Peers: []tailcfg.NodeView{
peer1,
@@ -4294,9 +4294,9 @@ func withExitRoutes() peerOptFunc {
}
}
func withSuggest() peerOptFunc {
func withSuggest(v []tailcfg.RawMessage) peerOptFunc {
return func(n *tailcfg.Node) {
mak.Set(&n.CapMap, tailcfg.NodeAttrSuggestExitNode, []tailcfg.RawMessage{})
mak.Set(&n.CapMap, tailcfg.NodeAttrSuggestExitNode, v)
}
}
@@ -4435,41 +4435,41 @@ func TestSuggestExitNode(t *testing.T) {
peer1 := makePeer(1,
withExitRoutes(),
withSuggest())
withSuggest(nil))
peer2DERP1 := makePeer(2,
withDERP(1),
withExitRoutes(),
withSuggest())
withSuggest(nil))
peer3 := makePeer(3,
withExitRoutes(),
withSuggest())
withSuggest(nil))
peer4DERP3 := makePeer(4,
withDERP(3),
withExitRoutes(),
withSuggest())
withSuggest(nil))
dallasPeer5 := makePeer(5,
withName("Dallas"),
withoutDERP(),
withExitRoutes(),
withSuggest(),
withSuggest(nil),
withLocation(dallas.View()))
sanJosePeer6 := makePeer(6,
withName("San Jose"),
withoutDERP(),
withExitRoutes(),
withSuggest(),
withSuggest(nil),
withLocation(sanJose.View()))
fortWorthPeer7 := makePeer(7,
withName("Fort Worth"),
withoutDERP(),
withExitRoutes(),
withSuggest(),
withSuggest(nil),
withLocation(fortWorth.View()))
fortWorthPeer8LowPriority := makePeer(8,
withName("Fort Worth Low"),
withoutDERP(),
withExitRoutes(),
withSuggest(),
withSuggest(nil),
withLocation(fortWorthLowPriority.View()))
selfNode := tailcfg.Node{
@@ -5035,7 +5035,7 @@ func TestSuggestExitNodeTrafficSteering(t *testing.T) {
SelfNode: selfNode.View(),
Peers: []tailcfg.NodeView{
makePeer(1,
withSuggest()),
withSuggest(nil)),
},
},
wantID: "",
@@ -5047,7 +5047,7 @@ func TestSuggestExitNodeTrafficSteering(t *testing.T) {
Peers: []tailcfg.NodeView{
makePeer(1,
withExitRoutes(),
withSuggest()),
withSuggest(nil)),
},
},
wantID: "stable1",
@@ -5060,16 +5060,16 @@ func TestSuggestExitNodeTrafficSteering(t *testing.T) {
Peers: []tailcfg.NodeView{
makePeer(1,
withExitRoutes(),
withSuggest()),
withSuggest(nil)),
makePeer(2,
withExitRoutes(),
withSuggest()),
withSuggest(nil)),
makePeer(3,
withExitRoutes(),
withSuggest()),
withSuggest(nil)),
makePeer(4,
withExitRoutes(),
withSuggest()),
withSuggest(nil)),
},
},
// Change this, if the hashing function changes.
@@ -5083,11 +5083,11 @@ func TestSuggestExitNodeTrafficSteering(t *testing.T) {
Peers: []tailcfg.NodeView{
makePeer(1,
withExitRoutes(),
withSuggest(),
withSuggest(nil),
withLocationPriority(1)),
makePeer(2,
withExitRoutes(),
withSuggest()),
withSuggest(nil)),
},
},
wantID: "stable1",
@@ -5101,10 +5101,10 @@ func TestSuggestExitNodeTrafficSteering(t *testing.T) {
Peers: []tailcfg.NodeView{
makePeer(1,
withExitRoutes(),
withSuggest()),
withSuggest(nil)),
makePeer(2,
withExitRoutes(),
withSuggest(),
withSuggest(nil),
withLocationPriority(1)),
},
},
@@ -5119,19 +5119,19 @@ func TestSuggestExitNodeTrafficSteering(t *testing.T) {
Peers: []tailcfg.NodeView{
makePeer(1,
withExitRoutes(),
withSuggest(),
withSuggest(nil),
withLocationPriority(-1)),
makePeer(2,
withExitRoutes(),
withSuggest(),
withSuggest(nil),
withLocationPriority(-2)),
makePeer(3,
withExitRoutes(),
withSuggest(),
withSuggest(nil),
withLocationPriority(-3)),
makePeer(4,
withExitRoutes(),
withSuggest(),
withSuggest(nil),
withLocationPriority(-4)),
},
},
@@ -5146,15 +5146,15 @@ func TestSuggestExitNodeTrafficSteering(t *testing.T) {
Peers: []tailcfg.NodeView{
makePeer(1,
withExitRoutes(),
withSuggest(),
withSuggest(nil),
withLocationPriority(-1)),
makePeer(2,
withExitRoutes(),
withSuggest(),
withSuggest(nil),
withLocationPriority(-2)),
makePeer(3,
withExitRoutes(),
withSuggest()),
withSuggest(nil)),
},
},
wantID: "stable3",
@@ -5167,30 +5167,30 @@ func TestSuggestExitNodeTrafficSteering(t *testing.T) {
Peers: []tailcfg.NodeView{
makePeer(1,
withExitRoutes(),
withSuggest(),
withSuggest(nil),
withLocationPriority(1)),
makePeer(2,
withExitRoutes(),
withSuggest(),
withSuggest(nil),
withLocationPriority(2)), // top
makePeer(3,
withExitRoutes(),
withSuggest(),
withSuggest(nil),
withLocationPriority(1)),
makePeer(4,
withExitRoutes(),
withSuggest(),
withSuggest(nil),
withLocationPriority(2)), // top
makePeer(5,
withExitRoutes(),
withSuggest(),
withSuggest(nil),
withLocationPriority(2)), // top
makePeer(6,
withExitRoutes(),
withSuggest()),
withSuggest(nil)),
makePeer(7,
withExitRoutes(),
withSuggest(),
withSuggest(nil),
withLocationPriority(2)), // top
},
},
@@ -5205,7 +5205,7 @@ func TestSuggestExitNodeTrafficSteering(t *testing.T) {
Peers: []tailcfg.NodeView{
makePeer(1,
withExitRoutes(),
withSuggest(),
withSuggest(nil),
withLocation(city.View())),
},
},
@@ -5220,7 +5220,7 @@ func TestSuggestExitNodeTrafficSteering(t *testing.T) {
Peers: []tailcfg.NodeView{
makePeer(1,
withExitRoutes(),
withSuggest(),
withSuggest(nil),
withLocation(city.View()),
withLocationPriority(1)),
},
@@ -5237,7 +5237,7 @@ func TestSuggestExitNodeTrafficSteering(t *testing.T) {
Peers: []tailcfg.NodeView{
makePeer(1,
withExitRoutes(),
withSuggest(),
withSuggest(nil),
withLocation(noLatLng.View())),
},
},
@@ -5252,7 +5252,7 @@ func TestSuggestExitNodeTrafficSteering(t *testing.T) {
Peers: []tailcfg.NodeView{
makePeer(1,
withExitRoutes(),
withSuggest(),
withSuggest(nil),
withLocation(noLatLng.View()),
withLocationPriority(1)),
},