mirror of
https://github.com/tailscale/tailscale.git
synced 2025-02-19 19:38:40 +00:00
wgengine: extend TestWatchdog timeout on macOS
This works around the close syscall being slow. We can revert this if we find a fix or if Apple makes close fast again. Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
This commit is contained in:
parent
2df8adef9d
commit
4954fbfda6
@ -7,6 +7,7 @@ package wgengine
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"runtime"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
@ -15,6 +16,13 @@ import (
|
|||||||
func TestWatchdog(t *testing.T) {
|
func TestWatchdog(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
|
var maxWaitMultiple time.Duration = 1
|
||||||
|
if runtime.GOOS == "darwin" {
|
||||||
|
// Work around slow close syscalls on Big Sur with content filter Network Extensions installed.
|
||||||
|
// See https://github.com/tailscale/tailscale/issues/1598.
|
||||||
|
maxWaitMultiple = 15
|
||||||
|
}
|
||||||
|
|
||||||
t.Run("default watchdog does not fire", func(t *testing.T) {
|
t.Run("default watchdog does not fire", func(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
e, err := NewFakeUserspaceEngine(t.Logf, 0)
|
e, err := NewFakeUserspaceEngine(t.Logf, 0)
|
||||||
@ -23,7 +31,7 @@ func TestWatchdog(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
e = NewWatchdog(e)
|
e = NewWatchdog(e)
|
||||||
e.(*watchdogEngine).maxWait = 150 * time.Millisecond
|
e.(*watchdogEngine).maxWait = maxWaitMultiple * 150 * time.Millisecond
|
||||||
e.(*watchdogEngine).logf = t.Logf
|
e.(*watchdogEngine).logf = t.Logf
|
||||||
e.(*watchdogEngine).fatalf = t.Fatalf
|
e.(*watchdogEngine).fatalf = t.Fatalf
|
||||||
|
|
||||||
@ -42,7 +50,7 @@ func TestWatchdog(t *testing.T) {
|
|||||||
usEngine := e.(*userspaceEngine)
|
usEngine := e.(*userspaceEngine)
|
||||||
e = NewWatchdog(e)
|
e = NewWatchdog(e)
|
||||||
wdEngine := e.(*watchdogEngine)
|
wdEngine := e.(*watchdogEngine)
|
||||||
wdEngine.maxWait = 100 * time.Millisecond
|
wdEngine.maxWait = maxWaitMultiple * 100 * time.Millisecond
|
||||||
|
|
||||||
logBuf := new(bytes.Buffer)
|
logBuf := new(bytes.Buffer)
|
||||||
fatalCalled := make(chan struct{})
|
fatalCalled := make(chan struct{})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user