Josh Bleecher Snyder and Josh Bleecher Snyder
25df067dd0
all: adapt to opaque netaddr types
...
This commit is a mishmash of automated edits using gofmt:
gofmt -r 'netaddr.IPPort{IP: a, Port: b} -> netaddr.IPPortFrom(a, b)' -w .
gofmt -r 'netaddr.IPPrefix{IP: a, Port: b} -> netaddr.IPPrefixFrom(a, b)' -w .
gofmt -r 'a.IP.Is4 -> a.IP().Is4' -w .
gofmt -r 'a.IP.As16 -> a.IP().As16' -w .
gofmt -r 'a.IP.Is6 -> a.IP().Is6' -w .
gofmt -r 'a.IP.As4 -> a.IP().As4' -w .
gofmt -r 'a.IP.String -> a.IP().String' -w .
And regexps:
\w*(.*)\.Port = (.*) -> $1 = $1.WithPort($2)
\w*(.*)\.IP = (.*) -> $1 = $1.WithIP($2)
And lots of manual fixups.
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com >
2021-05-16 14:52:00 -07:00
Brad Fitzpatrick
5a7c6f1678
tstest/integration{,/testcontrol}: add node update support, two node test
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-05-12 14:43:43 -07:00
Brad Fitzpatrick
d32667011d
tstest/integration: build test binaries with -race if test itself is
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-05-12 13:13:08 -07:00
Brad Fitzpatrick
ed9d825552
tstest/integration: fix integration test on linux/386
...
Apparently can't use GOBIN with GOARCH.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-05-12 11:56:00 -07:00
Brad Fitzpatrick
c0158bcd0b
tstest/integration{,/testcontrol}: add testcontrol.RequireAuth mode, new test
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-05-12 11:37:27 -07:00
78d4c561b5
types/logger: add key grinder stats lines to rate-limiting exemption list
...
Updates #1749
Co-authored-by: Brad Fitzpatrick <bradfitz@tailscale.com >
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com >
2021-05-05 08:25:15 -07:00
Brad Fitzpatrick
68fb51b833
tstest/integration: misc cleanups
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-05-03 14:22:18 -07:00
Brad Fitzpatrick
3237e140c4
tstest/integration: add testNode.AwaitListening, DERP+STUN, improve proxy trap
...
Updates #1840
2021-05-03 12:14:20 -07:00
Brad Fitzpatrick
98d7c28faa
tstest/integration: start factoring test types out to clean things up
...
To enable easy multi-node testing (including inter-node traffic) later.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-30 20:27:05 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
5e9e11a77d
tstest/integration/testcontrol: add start of test control server
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-29 22:51:22 -07:00
Brad Fitzpatrick
a07a504b16
tstest/integration: use go binary from runtime.GOROOT
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-29 17:04:29 -07:00
Brad Fitzpatrick
f342d10dc5
tstest/integration: set an HTTP_PROXY to catch bogus requests
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-29 16:00:02 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
80429b97e5
testing: add start of an integration test
...
Only minimal tailscale + tailscaled for now.
And a super minimal in-memory logcatcher.
No control ... yet.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-29 15:32:27 -07:00
Brad Fitzpatrick
08782b92f7
tstest: add WaitFor helper
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-29 14:43:46 -07:00
Josh Bleecher Snyder and Josh Bleecher Snyder
d31eff8473
tstest/natlab: use net.ErrClosed
...
We are now on 1.16.
And wgconn.NetErrClosed has been removed upstream.
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com >
2021-03-24 09:46:36 -07:00
Filippo Valsorda and Brad Fitzpatrick
39f7a61e9c
tstest/staticcheck: import the main package to fix "go mod tidy"
...
Importing the non-main package was missing some dependencies that
"go mod tidy" would then cleanup. Also added a non-ignore build tag to
avoid other tools getting upset about importing a main package.
Signed-off-by: Filippo Valsorda <hi@filippo.io >
2021-02-20 09:53:47 -08:00
Josh Bleecher Snyder and Josh Bleecher Snyder
138055dd70
tstest/natlab: use net.ErrClosed instead of a new error
...
Upstream wireguard-go decided to use errors.Is(err, net.ErrClosed)
instead of checking the error string.
It also provided an unsafe linknamed version of net.ErrClosed
for clients running Go 1.15. Switch to that.
This reduces the time required for the wgengine/magicsock tests
on my machine from ~35s back to the ~13s it was before
456cf8a3765948d6f1992162993eaf3844371592.
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com >
2021-02-05 13:44:46 -08:00
Josh Bleecher Snyder and Josh Bleecher Snyder
e8cd7bb66f
tstest: simplify goroutine leak tests
...
Use tb.Cleanup to simplify both the API and the implementation.
One behavior change: When the number of goroutines shrinks, don't log.
I've never found these logs to be useful, and they frequently add noise.
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com >
2021-02-03 13:06:40 -08:00
Josh Bleecher Snyder and Josh Bleecher Snyder
18471a8792
ipn: close logger at the end of TestLocalLogLines
...
If any goroutine continues to use the logger in TestLocalLogLines
after the test finishes, the test panics.
The culprit for this was wireguard-go; the previous commit fixed that.
This commit adds suspenders: When the test is done, make logging calls
into no-ops.
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com >
2021-01-08 17:10:48 -08:00
Brad Fitzpatrick
fd2a30cd32
wgengine/magicsock: make test pass on Windows and without firewall dialog box
...
Updates #50
2020-10-28 09:02:08 -07:00
Josh Bleecher Snyder and Josh Bleecher Snyder
e1596d655a
tstest: skip resource check when test has failed
...
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com >
2020-10-01 11:27:22 -07:00
Josh Bleecher Snyder and Josh Bleecher Snyder
2e40c4b564
tstest: don't log on success
...
This is particularly important for benchmarks,
where stray output disrupts tooling.
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com >
2020-09-08 15:18:36 -07:00
Brad Fitzpatrick
7fddc33481
tstest: make LogLineTracker pass variadic format args through
...
Omitting the "..." passed a literal []interface{} to the underlying
logger always.
2020-09-04 08:31:43 -07:00
Brad Fitzpatrick
68c42530e9
tstest: rename LogListener to LogLineTracker
...
But mostly to rename tstest.ListenFor which has no mention of log lines in it.
It sounded like a net.Listener or something.
2020-09-04 08:09:56 -07:00
David Crawshaw and David Crawshaw
3baa084548
tstest: take testing.TB in helper for benchmarks
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com >
2020-09-04 07:48:45 -04:00
Wendi Yu and GitHub
a3fb422a39
ipn: tag and test for grinder log lines ( #711 )
...
Signed-off-by: Wendi <wendi.yu@yahoo.ca >
2020-08-25 12:42:54 -06:00
David Anderson and Dave Anderson
f794493b4f
wgengine/magicsock: explicitly check path discovery, add a firewall test.
...
The test proves that active discovery can traverse two facing firewalls.
Signed-off-by: David Anderson <danderson@tailscale.com >
2020-07-27 14:09:54 -07:00
David Anderson and Dave Anderson
5a370d545a
tstest/natlab: drop packets that can't be routed in a LAN.
...
LANs are authoritative for their prefixes, so we should not bounce
packets back and forth to the default gateway in that case.
Signed-off-by: David Anderson <danderson@tailscale.com >
2020-07-27 14:09:54 -07:00
David Anderson and Dave Anderson
45578b47f3
tstest/natlab: refactor PacketHandler into a larger interface.
...
The new interface lets implementors more precisely distinguish
local traffic from forwarded traffic, and applies different
forwarding logic within Machines for each type. This allows
Machines to be packet forwarders, which didn't quite work
with the implementation of Inject.
Signed-off-by: David Anderson <danderson@tailscale.com >
2020-07-15 14:38:33 -07:00
David Anderson and Dave Anderson
23123907c0
tstest/natlab: add a configurable SNAT44 translator.
...
This lets us implement the most common kinds of NAT in the wild.
Signed-off-by: David Anderson <danderson@tailscale.com >
2020-07-14 12:17:47 -07:00
David Anderson and Dave Anderson
39ecb37fd6
tstest/natlab: support different firewall selectivities.
...
Signed-off-by: David Anderson <danderson@tailscale.com >
2020-07-13 10:52:46 -07:00
David Anderson
88e8456e9b
wgengine/magicsock: add a connectivity test for facing firewalls.
...
The test demonstrates that magicsock can traverse two stateful
firewalls facing each other, that each require localhost to
initiate connections.
Signed-off-by: David Anderson <danderson@tailscale.com >
2020-07-11 07:04:08 +00:00
David Anderson
b3d65ba943
tstest/natlab: refactor, expose a Packet type.
...
HandlePacket and Inject now receive/take Packets. This is a handy
container for the packet, and the attached Trace method can be used
to print traces from custom packet handlers that integrate nicely
with natlab's internal traces.
Signed-off-by: David Anderson <danderson@tailscale.com >
2020-07-11 06:33:01 +00:00
David Anderson
5eedbcedd1
tstest/natlab: add a stateful firewall.
...
The firewall provides a ProcessPacket handler, and implements an
address-and-port endpoint dependent firewall that allows all
traffic to egress from the trusted interface, and only allows
inbound traffic if corresponding outbound traffic was previously
seen.
Signed-off-by: David Anderson <danderson@tailscale.com >
2020-07-11 05:17:38 +00:00
David Anderson and Dave Anderson
0ed9f62ed0
tstest/natlab: provide inbound interface to HandlePacket.
...
Requires a bunch of refactoring so that Networks only ever
refer to Interfaces that have been attached to them, and
Interfaces know about both their Network and Machine.
Signed-off-by: David Anderson <danderson@tailscale.com >
2020-07-10 20:08:48 -07:00
Brad Fitzpatrick
6c74065053
wgengine/magicsock, tstest/natlab: start hooking up natlab to magicsock
...
Also adds ephemeral port support to natlab.
Work in progress.
Pairing with @danderson.
2020-07-10 14:32:58 -07:00
Brad Fitzpatrick
7883e5c5e7
go.mod: restore staticcheck module, make it stick around, go mod tidy
...
It kept coming & going as different people ran go mod tidy and others
ran staticcheck.
Make it stop going away with go mod tidy by adding a dep to it.
2020-07-02 22:55:14 -07:00
David Anderson and Dave Anderson
0aea087766
tstest/natlab: add PacketHandler and Inject.
...
Together, they can be used to plug custom packet processors into
Machines.
Signed-off-by: David Anderson <danderson@tailscale.com >
2020-07-02 21:51:09 -07:00
David Anderson and Dave Anderson
73db7e99ab
tstest/natlab: make Machine constructible directly.
...
This is a prelude to adding more fields, which would otherwise
become more unnamed function params.
Signed-off-by: David Anderson <danderson@tailscale.com >
2020-07-02 21:51:09 -07:00
David Anderson
d94593e884
tstest/natlab: unregister conn4 if registration of conn6 fails.
...
Signed-off-by: David Anderson <danderson@tailscale.com >
2020-07-03 02:27:31 +00:00
David Anderson
d7bc4ec029
tstest/natlab: use common helper for conn registration.
...
Signed-off-by: David Anderson <danderson@tailscale.com >
2020-07-03 02:26:54 +00:00
David Anderson
80a14c49c6
tstest/natlab: add comments to conns4/conns6.
...
Signed-off-by: David Anderson <danderson@tailscale.com >
2020-07-03 02:23:01 +00:00
David Anderson
c53b154171
tstest/natlab: use &Network in test.
...
Signed-off-by: David Anderson <danderson@tailscale.com >
2020-07-03 02:22:06 +00:00
David Anderson
622c0d0cb3
tstest/natlab: print trace data when NATLAB_TRACE is set.
...
Signed-off-by: David Anderson <danderson@tailscale.com >
2020-07-03 02:10:41 +00:00
David Anderson and Dave Anderson
1d4f9852a7
tstest/natlab: correctly handle dual-stacked PacketConns.
...
Adds a test with multiple networks, one of which is v4-only.
Signed-off-by: David Anderson <danderson@tailscale.com >
2020-07-02 19:09:31 -07:00
David Anderson
771eb05bcb
tstest/natlab: first network attached becomes the default route.
...
Signed-off-by: David Anderson <danderson@tailscale.com >
2020-07-03 01:03:05 +00:00
David Anderson
f2e5da916a
tstest/natlab: allow sensible default construction of networks.
...
Add a test for LAN->LAN traffic.
Signed-off-by: David Anderson <danderson@tailscale.com >
2020-07-03 00:53:24 +00:00
Brad Fitzpatrick
97910ce712
tstest/natlab: remove unused PacketConner type
2020-07-02 14:50:04 -07:00
Brad Fitzpatrick
14b4213c17
tstest/natlab: add missing tests from earlier commits
...
Now you can actually see that packet delivery works.
Pairing with @danderson
2020-07-02 14:19:43 -07:00
Brad Fitzpatrick
3f4f1cfe66
tstest/natlab: basic NAT-free packet delivery works
...
Pairing with @danderson
2020-07-02 14:18:36 -07:00