@ -21,10 +21,10 @@ import (
"tailscale.com/ipn"
"tailscale.com/ipn/store/mem"
"tailscale.com/tailcfg"
"tailscale.com/tsd"
"tailscale.com/tstest"
"tailscale.com/types/logger"
"tailscale.com/types/netmap"
"tailscale.com/util/eventbus"
"tailscale.com/util/must"
"tailscale.com/util/usermetric"
"tailscale.com/wgengine"
@ -156,10 +156,9 @@ func TestHandlePeerAPI(t *testing.T) {
selfNode . CapMap = tailcfg . NodeCapMap { tailcfg . CapabilityDebug : nil }
}
var e peerAPITestEnv
lb := & LocalBackend {
logf : e . logBuf . Logf ,
clock : & tstest . Clock { } ,
}
lb := newTestLocalBackend ( t )
lb . logf = e . logBuf . Logf
lb . clock = & tstest . Clock { }
lb . currentNode ( ) . SetNetMap ( & netmap . NetworkMap { SelfNode : selfNode . View ( ) } )
e . ph = & peerAPIHandler {
isSelf : tt . isSelf ,
@ -195,20 +194,20 @@ func TestPeerAPIReplyToDNSQueries(t *testing.T) {
h . isSelf = false
h . remoteAddr = netip . MustParseAddrPort ( "100.150.151.152:12345" )
bus := eventbus . New ( )
defer bus . Close ( )
sys := tsd . NewSystem ( )
t . Cleanup ( sys . Bus . Get ( ) . Close )
ht := new ( health . Tracker )
reg := new ( usermetric . Registry )
eng , _ := wgengine . NewFakeUserspaceEngine ( logger . Discard , 0 , ht , reg , bus )
pm := must . Get ( newProfileManager ( new ( mem . Store ) , t . Logf , ht ) )
h . ps = & peerAPIServer {
b : & LocalBackend {
e : eng ,
pm : pm ,
store : pm . Store ( ) ,
} ,
}
reg := new ( usermetric . Registry )
eng , _ := wgengine . NewFakeUserspaceEngine ( logger . Discard , 0 , ht , reg , sys . Bus . Get ( ) , sys . Set )
sys . Set ( pm . Store ( ) )
sys . Set ( eng )
b := newTestLocalBackendWithSys ( t , sys )
b . pm = pm
h . ps = & peerAPIServer { b : b }
if h . ps . b . OfferingExitNode ( ) {
t . Fatal ( "unexpectedly offering exit node" )
}
@ -250,12 +249,12 @@ func TestPeerAPIPrettyReplyCNAME(t *testing.T) {
var h peerAPIHandler
h . remoteAddr = netip . MustParseAddrPort ( "100.150.151.152:12345" )
bus := eventbus . New ( )
defer bus . Close ( )
sys := tsd . NewSystem ( )
t . Cleanup ( sys . Bus . Get ( ) . Close )
ht := new ( health . Tracker )
reg := new ( usermetric . Registry )
eng , _ := wgengine . NewFakeUserspaceEngine ( logger . Discard , 0 , ht , reg , bus )
eng , _ := wgengine . NewFakeUserspaceEngine ( logger . Discard , 0 , ht , reg , sys. Bus . Get ( ) , sys . Set )
pm := must . Get ( newProfileManager ( new ( mem . Store ) , t . Logf , ht ) )
var a * appc . AppConnector
if shouldStore {
@ -263,16 +262,14 @@ func TestPeerAPIPrettyReplyCNAME(t *testing.T) {
} else {
a = appc . NewAppConnector ( t . Logf , & appctest . RouteCollector { } , nil , nil )
}
h . ps = & peerAPIServer {
b : & LocalBackend {
e : eng ,
pm : pm ,
store : pm . Store ( ) ,
// configure as an app connector just to enable the API.
appConnector : a ,
} ,
}
sys . Set ( pm . Store ( ) )
sys . Set ( eng )
b := newTestLocalBackendWithSys ( t , sys )
b . pm = pm
b . appConnector = a // configure as an app connector just to enable the API.
h . ps = & peerAPIServer { b : b }
h . ps . resolver = & fakeResolver { build : func ( b * dnsmessage . Builder ) {
b . CNAMEResource (
dnsmessage . ResourceHeader {
@ -326,27 +323,29 @@ func TestPeerAPIReplyToDNSQueriesAreObserved(t *testing.T) {
var h peerAPIHandler
h . remoteAddr = netip . MustParseAddrPort ( "100.150.151.152:12345" )
bus := eventbus . New ( )
defer bus . Close ( )
sys := tsd . NewSystem ( )
t . Cleanup ( sys . Bus . Get ( ) . Close )
rc := & appctest . RouteCollector { }
ht := new ( health . Tracker )
reg := new ( usermetric . Registry )
eng , _ := wgengine . NewFakeUserspaceEngine ( logger . Discard , 0 , ht , reg , bus )
pm := must . Get ( newProfileManager ( new ( mem . Store ) , t . Logf , ht ) )
reg := new ( usermetric . Registry )
eng , _ := wgengine . NewFakeUserspaceEngine ( logger . Discard , 0 , ht , reg , sys . Bus . Get ( ) , sys . Set )
var a * appc . AppConnector
if shouldStore {
a = appc . NewAppConnector ( t . Logf , rc , & appc . RouteInfo { } , fakeStoreRoutes )
} else {
a = appc . NewAppConnector ( t . Logf , rc , nil , nil )
}
h. ps = & peerAPIServer {
b : & LocalBackend {
e : eng ,
pm : pm ,
store : pm . Store ( ) ,
appConnector : a ,
} ,
}
sys. Set ( pm . Store ( ) )
sys . Set ( eng )
b := newTestLocalBackendWithSys ( t , sys )
b . pm = pm
b . appConnector = a
h . ps = & peerAPIServer { b : b }
h . ps . b . appConnector . UpdateDomains ( [ ] string { "example.com" } )
h . ps . b . appConnector . Wait ( ctx )
@ -393,12 +392,13 @@ func TestPeerAPIReplyToDNSQueriesAreObservedWithCNAMEFlattening(t *testing.T) {
var h peerAPIHandler
h . remoteAddr = netip . MustParseAddrPort ( "100.150.151.152:12345" )
bus := eventbus . New ( )
defer bus . Close ( )
sys := tsd . NewSystem ( )
t . Cleanup ( sys . Bus . Get ( ) . Close )
ht := new ( health . Tracker )
reg := new ( usermetric . Registry )
rc := & appctest . RouteCollector { }
eng , _ := wgengine . NewFakeUserspaceEngine ( logger . Discard , 0 , ht , reg , bus )
eng , _ := wgengine . NewFakeUserspaceEngine ( logger . Discard , 0 , ht , reg , sys. Bus . Get ( ) , sys . Set )
pm := must . Get ( newProfileManager ( new ( mem . Store ) , t . Logf , ht ) )
var a * appc . AppConnector
if shouldStore {
@ -406,14 +406,14 @@ func TestPeerAPIReplyToDNSQueriesAreObservedWithCNAMEFlattening(t *testing.T) {
} else {
a = appc . NewAppConnector ( t . Logf , rc , nil , nil )
}
h. ps = & peerAPIServer {
b : & LocalBackend {
e : eng ,
pm : pm ,
store : pm . Store ( ) ,
appConnector : a ,
} ,
}
sys. Set ( pm . Store ( ) )
sys . Set ( eng )
b := newTestLocalBackendWithSys ( t , sys )
b . pm = pm
b . appConnector = a
h . ps = & peerAPIServer { b : b }
h . ps . b . appConnector . UpdateDomains ( [ ] string { "www.example.com" } )
h . ps . b . appConnector . Wait ( ctx )