You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Adrian Dewhurst
3bf2bddbb5
ipn/ipnlocal: improve testability of random node selection
...
In order to test the sticky last suggestion code, a test was written for
LocalBackend.SuggestExitNode but it contains a random number generator
which makes writing comprehensive tests very difficult. This doesn't
change how the last suggestion works, but it adds some infrastructure to
make that easier in a later PR.
This adds func parameters for the two randomized parts: breaking ties
between DERP regions and breaking ties between nodes. This way tests can
validate the entire list of tied options, rather than expecting a
particular outcome given a particular random seed.
As a result of this, the global random number generator can be used
rather than seeding a local one each time.
In order to see the tied nodes for the location based (i.e. Mullvad)
case, pickWeighted needed to return a slice instead of a single
arbitrary option, so there is a small change in how that works.
Updates tailscale/corp#19681
Change-Id: I83c48a752abdec0f59c58ccfd8bfb3f3f17d0ea8
Signed-off-by: Adrian Dewhurst <adrian@tailscale.com>
2 years ago
..
testdata
ipn/ipnlocal: fix the path for writing cert files ( #7203 )
3 years ago
breaktcp_darwin.go
cmd/tailscale: add debug commands to break connections
3 years ago
breaktcp_linux.go
cmd/tailscale: add debug commands to break connections
3 years ago
c2n.go
ipn/ipnlocal: support c2n updates with old systemd versions ( #12296 )
2 years ago
c2n_pprof.go
ipn/ipnlocal: add c2n /debug/pprof/allocs endpoint
2 years ago
c2n_test.go
util/cmpx: delete now that we're using Go 1.22
2 years ago
cert.go
ipn/ipnlocal: remove ancient transition mechanism for https certs
2 years ago
cert_js.go
ipn/ipnlocal: add c2n method to check on TLS cert fetch status
2 years ago
cert_test.go
all: use Go 1.21 slices, maps instead of x/exp/{slices,maps}
3 years ago
dnsconfig_test.go
util/cmpx: delete now that we're using Go 1.22
2 years ago
drive.go
ipn/ipnlocal: reuse transport across Taildrive remotes
2 years ago
expiry.go
ssh/tailssh: use control server time instead of local time
2 years ago
expiry_test.go
types/netmap, all: make NetworkMap.SelfNode a tailcfg.NodeView
3 years ago
local.go
ipn/ipnlocal: improve testability of random node selection
2 years ago
local_test.go
ipn/ipnlocal: improve testability of random node selection
2 years ago
loglines_test.go
ipn/ipnlocal, all: plumb health trackers in tests
2 years ago
network-lock.go
ipn/ipnlocal: discard node keys that have been rotated out
2 years ago
network-lock_test.go
ipn/ipnlocal: discard node keys that have been rotated out
2 years ago
peerapi.go
net/{interfaces,netmon}, all: merge net/interfaces package into net/netmon
2 years ago
peerapi_h2c.go
all: update copyright and license headers
3 years ago
peerapi_macios_ext.go
net/netmon, add: add netmon.State type alias of interfaces.State
2 years ago
peerapi_test.go
ipn/ipnlocal, all: plumb health trackers in tests
2 years ago
profiles.go
various: disable stateful filtering by default ( #12197 )
2 years ago
profiles_notwindows.go
ipn/ipnlocal: fix profile duplication
3 years ago
profiles_test.go
various: disable stateful filtering by default ( #12197 )
2 years ago
profiles_windows.go
ipn/ipnlocal: set default NoStatefulFiltering in ipn.NewPrefs ( #12031 )
2 years ago
serve.go
all: use Go 1.22 range-over-int
2 years ago
serve_test.go
ipn/ipnlocal, all: plumb health trackers in tests
2 years ago
ssh.go
ipnlocal: log failure to get ssh host keys
2 years ago
ssh_stub.go
ipnlocal: log failure to get ssh host keys
2 years ago
ssh_test.go
ipn/ipnlocal: plumb health.Tracker into profileManager constructor
2 years ago
state_test.go
control/controlclient: delete unused Client.Login Oauth2Token field
2 years ago
taildrop.go
ipn/localapi: add support for multipart POST to file-put
2 years ago
web_client.go
all: remove LenIter, use Go 1.22 range-over-int instead
2 years ago
web_client_stub.go
ipn/ipnlocal: add mutex to webClient struct
2 years ago