summaryrefslogtreecommitdiffhomepage
path: root/device
diff options
context:
space:
mode:
authorJosh Bleecher Snyder <josh@tailscale.com>2021-01-05 15:03:24 -0800
committerJason A. Donenfeld <Jason@zx2c4.com>2021-01-07 14:49:44 +0100
commitcdaf4e9a76ed9485ff67c1601a947fcb8089a680 (patch)
treedb89de72a3cf05d9a70a44e191e74b97cadfa3dd /device
parent3d83df9bf3edcffcd5c2347323f70b9d12898a81 (diff)
device: make test infrastructure usable with benchmarks
Switch from *testing.T to testing.TB. Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
Diffstat (limited to 'device')
-rw-r--r--device/device_test.go28
1 files changed, 14 insertions, 14 deletions
diff --git a/device/device_test.go b/device/device_test.go
index 6b7980b..6cfe22f 100644
--- a/device/device_test.go
+++ b/device/device_test.go
@@ -18,10 +18,10 @@ import (
"golang.zx2c4.com/wireguard/tun/tuntest"
)
-func getFreePort(t *testing.T) string {
+func getFreePort(tb testing.TB) string {
l, err := net.ListenPacket("udp", "localhost:0")
if err != nil {
- t.Fatal(err)
+ tb.Fatal(err)
}
defer l.Close()
return fmt.Sprintf("%d", l.LocalAddr().(*net.UDPAddr).Port)
@@ -51,11 +51,11 @@ func uapiCfg(cfg ...string) io.ReadSeeker {
// genConfigs generates a pair of configs that connect to each other.
// The configs use distinct, probably-usable ports.
-func genConfigs(t *testing.T) (cfgs [2]io.Reader) {
+func genConfigs(tb testing.TB) (cfgs [2]io.Reader) {
var port1, port2 string
for port1 == port2 {
- port1 = getFreePort(t)
- port2 = getFreePort(t)
+ port1 = getFreePort(tb)
+ port2 = getFreePort(tb)
}
cfgs[0] = uapiCfg(
@@ -98,8 +98,8 @@ const (
Pong SendDirection = false
)
-func (pair *testPair) Send(t *testing.T, ping SendDirection, done chan struct{}) {
- t.Helper()
+func (pair *testPair) Send(tb testing.TB, ping SendDirection, done chan struct{}) {
+ tb.Helper()
p0, p1 := pair[0], pair[1]
if !ping {
// pong is the new ping
@@ -127,16 +127,16 @@ func (pair *testPair) Send(t *testing.T, ping SendDirection, done chan struct{})
default:
}
// Real error.
- t.Error(err)
+ tb.Error(err)
}
}
// genTestPair creates a testPair.
-func genTestPair(t *testing.T) (pair testPair) {
+func genTestPair(tb testing.TB) (pair testPair) {
const maxAttempts = 10
NextAttempt:
for i := 0; i < maxAttempts; i++ {
- cfg := genConfigs(t)
+ cfg := genConfigs(tb)
// Bring up a ChannelTun for each config.
for i := range pair {
p := &pair[i]
@@ -156,23 +156,23 @@ NextAttempt:
// Try again from the beginning.
// If there's something permanent wrong,
// we'll see that when we run out of attempts.
- t.Logf("failed to configure device %d: %v", i, err)
+ tb.Logf("failed to configure device %d: %v", i, err)
continue NextAttempt
}
// The device might still not be up, e.g. due to an error
// in RoutineTUNEventReader's call to dev.Up that got swallowed.
// Assume it's due to a transient error (port in use), and retry.
if !p.dev.isUp.Get() {
- t.Logf("device %d did not come up, trying again", i)
+ tb.Logf("device %d did not come up, trying again", i)
continue NextAttempt
}
// The device is up. Close it when the test completes.
- t.Cleanup(p.dev.Close)
+ tb.Cleanup(p.dev.Close)
}
return // success
}
- t.Fatalf("genChannelTUNs: failed %d times", maxAttempts)
+ tb.Fatalf("genChannelTUNs: failed %d times", maxAttempts)
return
}