all: make more tests pass/skip in airplane mode

Updates tailscale/corp#19786

Change-Id: Iedc6730fe91c627b556bff5325bdbaf7bf79d8e6
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick
2024-05-05 11:57:47 -07:00
committed by Brad Fitzpatrick
parent 41f2195899
commit c3c18027c6
7 changed files with 28 additions and 15 deletions

View File

@@ -396,9 +396,7 @@ func makeProbePlan(dm *tailcfg.DERPMap, ifState *netmon.State, last *Report) (pl
have6if := ifState.HaveV6
have4if := ifState.HaveV4
plan = make(probePlan)
if !have4if && !have6if {
return plan
}
had4 := len(last.RegionV4Latency) > 0
had6 := len(last.RegionV6Latency) > 0
hadBoth := have6if && had4 && had6
@@ -452,10 +450,10 @@ func makeProbePlan(dm *tailcfg.DERPMap, ifState *netmon.State, last *Report) (pl
if try > 1 {
delay += time.Duration(try) * 50 * time.Millisecond
}
if do4 {
if do4 || n.IsTestNode() {
p4 = append(p4, probe{delay: delay, node: n.Name, proto: probeIPv4})
}
if do6 {
if do6 || n.IsTestNode() {
p6 = append(p6, probe{delay: delay, node: n.Name, proto: probeIPv6})
}
}
@@ -478,10 +476,10 @@ func makeProbePlanInitial(dm *tailcfg.DERPMap, ifState *netmon.State) (plan prob
for try := 0; try < 3; try++ {
n := reg.Nodes[try%len(reg.Nodes)]
delay := time.Duration(try) * defaultInitialRetransmitTime
if ifState.HaveV4 && nodeMight4(n) {
if ifState.HaveV4 && nodeMight4(n) || n.IsTestNode() {
p4 = append(p4, probe{delay: delay, node: n.Name, proto: probeIPv4})
}
if ifState.HaveV6 && nodeMight6(n) {
if ifState.HaveV6 && nodeMight6(n) || n.IsTestNode() {
p6 = append(p6, probe{delay: delay, node: n.Name, proto: probeIPv6})
}
}

View File

@@ -23,6 +23,7 @@ import (
"tailscale.com/net/stun/stuntest"
"tailscale.com/tailcfg"
"tailscale.com/tstest"
"tailscale.com/tstest/nettest"
)
func TestHairpinSTUN(t *testing.T) {
@@ -882,6 +883,8 @@ func TestSortRegions(t *testing.T) {
}
func TestNoCaptivePortalWhenUDP(t *testing.T) {
nettest.SkipIfNoNetwork(t) // empirically. not sure why.
// Override noRedirectClient to handle the /generate_204 endpoint
var generate204Called atomic.Bool
tr := RoundTripFunc(func(req *http.Request) *http.Response {
@@ -934,6 +937,7 @@ func (f RoundTripFunc) RoundTrip(req *http.Request) (*http.Response, error) {
}
func TestNodeAddrResolve(t *testing.T) {
nettest.SkipIfNoNetwork(t)
c := &Client{
Logf: t.Logf,
UseDNSCache: true,

View File

@@ -118,13 +118,14 @@ func DERPMapOf(stun ...string) *tailcfg.DERPMap {
ipv4 = "none"
}
node := &tailcfg.DERPNode{
Name: fmt.Sprint(regionID) + "a",
RegionID: regionID,
HostName: fmt.Sprintf("d%d%s", regionID, tailcfg.DotInvalid),
IPv4: ipv4,
IPv6: ipv6,
STUNPort: port,
STUNOnly: true,
Name: fmt.Sprint(regionID) + "a",
RegionID: regionID,
HostName: fmt.Sprintf("d%d%s", regionID, tailcfg.DotInvalid),
IPv4: ipv4,
IPv6: ipv6,
STUNPort: port,
STUNOnly: true,
STUNTestIP: host,
}
m.Regions[regionID] = &tailcfg.DERPRegion{
RegionID: regionID,