tailscale/util
Avery Pennarun 97e021d8ed fix flaky tests: improve test isolation and reliability
Test fixes for consistent pass rates under repeated runs (-count=N):

Global state isolation:
- appc: check metric deltas instead of absolute values
- cmd/derper: initialize DNS caches before test
- tsweb/varz: use unpublished expvar to avoid global registration
- wgengine/netstack: check metric deltas instead of absolute values
- net/dns: use SetForTest() with deferred restore for hooks

Timeout and concurrency:
- cmd/containerboot: increase wait loop timeouts for parallel load
- tsconsensus: add deadline to waitFor(), use sync.Once for netns
- tstest/integration: add tstest.Shard/Parallel, fix IPN bus watchers
- net/netcheck: set testCaptivePortalDelay to prevent hangs
- wgengine/magicsock: use Port:0, add timeout to callback wait
- drive/driveimpl: use http.Server for proper shutdown

Race conditions:
- tstest/archtest: remove !race from build constraint
- util/deephash: use local sink variable instead of package-level
- net/art: switch to math/rand/v2 for thread-safe globals
- tstest/integration: use Status() instead of MustStatus() from goroutines

Test optimization:
- net/udprelay: rewrite VNI test to avoid iterating all 16M values
- ipn/ipnlocal: reset env vars between subtests
- cmd/containerboot/serve: use SetWaitDurationForTest
- tsnet: wait for service VIP in AllowedIPs before dialing

Change-Id: Id6186fb8a45031920550a208ded77382e57cc016
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Avery Pennarun <apenwarr@tailscale.com>
2026-04-13 17:28:18 +02:00
..
backoff all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
bufiox derp,types,util: use bufio Peek+Discard for allocation-free fast reads (#19067) 2026-03-24 10:52:20 -04:00
checkchange all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
cibuild all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
clientmetric ipn/localapi, cli, clientmetric: add ipnbus feature tag; fix omit.go stub 2026-04-07 10:22:37 -07:00
cloudenv all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
cloudinfo all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
cmpver cmd/vet: add subtestnames analyzer; fix all existing violations 2026-04-05 15:52:51 -07:00
codegen all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
cstruct all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
ctxkey all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
deephash fix flaky tests: improve test isolation and reliability 2026-04-13 17:28:18 +02:00
dirwalk all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
dnsname all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
eventbus fix flaky tests: make code more testable and fix race conditions 2026-04-13 17:28:15 +02:00
execqueue all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
expvarx all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
goroutines all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
groupmember all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
hashx all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
httphdr all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
httpm all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
limiter all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
lineiter all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
lineread all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
linuxfw .github, tool/listpkgs: automatically find tests which use tstest.RequireRoot 2026-04-10 16:22:05 -07:00
lru all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
mak all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
multierr all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
must all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
nocasemaps all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
osdiag util/osdiag: fix typo in comment (reciever -> receiver) 2026-03-23 12:54:38 +00:00
osshare all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
osuser util/osuser: extend id command fallback for group IDs to freebsd 2026-03-09 08:39:07 +00:00
pidowner all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
pool all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
precompress all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
progresstracking all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
prompt all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
qrcodes all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
quarantine all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
race all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
racebuild all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
rands all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
reload all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
ringlog all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
safediff all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
set all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
singleflight all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
slicesx all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
stringsx all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
syspolicy cmd/vet: add subtestnames analyzer; fix all existing violations 2026-04-05 15:52:51 -07:00
sysresources all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
testenv all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
topk all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
truncate all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
usermetric all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
vizerror all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
winutil all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
zstdframe all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00