tailscale/types
Nick Khyl f023c8603a
Some checks are pending
checklocks / checklocks (push) Waiting to run
CodeQL / Analyze (go) (push) Waiting to run
Dockerfile build / deploy (push) Waiting to run
CI / race-root-integration (1/4) (push) Waiting to run
CI / race-root-integration (2/4) (push) Waiting to run
CI / race-root-integration (3/4) (push) Waiting to run
CI / race-root-integration (4/4) (push) Waiting to run
CI / test (-coverprofile=/tmp/coverage.out, amd64) (push) Waiting to run
CI / test (-race, amd64, 1/3) (push) Waiting to run
CI / test (-race, amd64, 2/3) (push) Waiting to run
CI / test (-race, amd64, 3/3) (push) Waiting to run
CI / test (386) (push) Waiting to run
CI / windows (push) Waiting to run
CI / privileged (push) Waiting to run
CI / vm (push) Waiting to run
CI / race-build (push) Waiting to run
CI / cross (386, linux) (push) Waiting to run
CI / cross (amd64, darwin) (push) Waiting to run
CI / cross (amd64, freebsd) (push) Waiting to run
CI / cross (amd64, openbsd) (push) Waiting to run
CI / cross (amd64, windows) (push) Waiting to run
CI / cross (arm, 5, linux) (push) Waiting to run
CI / cross (arm, 7, linux) (push) Waiting to run
CI / cross (arm64, darwin) (push) Waiting to run
CI / cross (arm64, linux) (push) Waiting to run
CI / cross (arm64, windows) (push) Waiting to run
CI / cross (loong64, linux) (push) Waiting to run
CI / ios (push) Waiting to run
CI / crossmin (amd64, illumos) (push) Waiting to run
CI / crossmin (amd64, plan9) (push) Waiting to run
CI / crossmin (amd64, solaris) (push) Waiting to run
CI / crossmin (ppc64, aix) (push) Waiting to run
CI / android (push) Waiting to run
CI / wasm (push) Waiting to run
CI / tailscale_go (push) Waiting to run
CI / fuzz (push) Waiting to run
CI / depaware (push) Waiting to run
CI / go_generate (push) Waiting to run
CI / go_mod_tidy (push) Waiting to run
CI / licenses (push) Waiting to run
CI / staticcheck (386, windows) (push) Waiting to run
CI / staticcheck (amd64, darwin) (push) Waiting to run
CI / staticcheck (amd64, linux) (push) Waiting to run
CI / staticcheck (amd64, windows) (push) Waiting to run
CI / notify_slack (push) Blocked by required conditions
CI / check_mergeability (push) Blocked by required conditions
types/lazy: fix flaky TestDeferAfterDo
This test verifies, among other things, that init functions cannot be deferred after (*DeferredFuncs).Do
has already been called and that all subsequent calls to (*DeferredFuncs).Defer return false.

However, the initial implementation of this check was racy: by the time (*DeferredFuncs).Do returned,
not all goroutines that successfully deferred an init function may have incremented the atomic variable
tracking the number of deferred functions. As a result, the variable's value could differ immediately
after (*DeferredFuncs).Do returned and after all goroutines had completed execution (i.e., after wg.Wait()).

In this PR, we replace the original racy check with a different one. Although this new check is also racy,
it can only produce false negatives. This means that if the test fails, it indicates an actual bug rather than
a flaky test.

Fixes #14039

Signed-off-by: Nick Khyl <nickk@tailscale.com>
2025-01-15 15:38:51 -06:00
..
appctype appc,ipn/ipnlocal,types/appctype: implement control provided routes 2024-01-17 14:40:09 -08:00
bools types/bools: add IfElse (#14272) 2024-12-11 10:55:33 -08:00
dnstype cmd/viewer,all: consistently use "read-only" instead of "readonly" 2025-01-14 08:26:56 -08:00
empty all: update copyright and license headers 2023-01-27 15:36:29 -08:00
flagtype all: update copyright and license headers 2023-01-27 15:36:29 -08:00
iox types/iox: add function types for Reader and Writer (#14366) 2024-12-11 10:55:21 -08:00
ipproto all: use Go 1.22 range-over-int 2024-04-16 15:32:38 -07:00
key types/key: use tlpub: in error message (#13707) 2024-10-07 17:28:45 +01:00
lazy types/lazy: fix flaky TestDeferAfterDo 2025-01-15 15:38:51 -06:00
logger all: use Go 1.22 range-over-int 2024-04-16 15:32:38 -07:00
logid types/logid: add Add method (#12478) 2024-06-17 16:03:44 -07:00
netlogtype all: update copyright and license headers 2023-01-27 15:36:29 -08:00
netmap all: add Node.HomeDERP int, phase out "127.3.3.40:$region" hack [capver 111] 2025-01-14 12:27:14 -08:00
nettype wgengine/magicsock, types/nettype, etc: finish ReadFromUDPAddrPort netip migration 2023-04-15 13:40:15 -07:00
opt types/opt: fix test to be agnostic to omitzero support (#14401) 2024-12-16 10:56:55 -08:00
persist cmd/viewer,all: consistently use "read-only" instead of "readonly" 2025-01-14 08:26:56 -08:00
prefs cmd/viewer,all: consistently use "read-only" instead of "readonly" 2025-01-14 08:26:56 -08:00
preftype cmd/tailscaled,*: add start of configuration file support 2023-10-16 10:40:27 -07:00
ptr all: update copyright and license headers 2023-01-27 15:36:29 -08:00
result types/result, util/lineiter: add package for a result type, use it 2024-11-05 10:27:52 -08:00
structs all: update copyright and license headers 2023-01-27 15:36:29 -08:00
tkatype types/tkatype: add test for MarshaledSignature's JSON format 2023-08-19 19:34:18 -07:00
views cmd/viewer,types/views,various: avoid allocations in pointer field getters whenever possible 2025-01-14 09:37:10 -06:00