diff options
| author | Dmitri Shuralyov <dmitshur@golang.org> | 2023-07-27 19:36:55 -0400 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2023-07-28 21:31:41 +0000 |
| commit | 2ad666dea0490305bb7fd2dd6e7beb767acfd2c3 (patch) | |
| tree | 4f94fe90b3b2f4bfa33d0e7251a1c9598db73549 /src/syscall/syscall_linux_test.go | |
| parent | f322d67ced53f413c4b35f41f754fa34f440b012 (diff) | |
| download | go-2ad666dea0490305bb7fd2dd6e7beb767acfd2c3.tar.xz | |
syscall, cmd/cgo: skip tests that shouldn't run under 'unshare -n -r'
A small number of tests in the main tree are currently skipped in LUCI
because our builders there run tests without root. Unfortunately, these
tests begin to run when run under 'unshare -n -r' as implemented in
the current iteration of a no-network check. Add targeted builder-only
skips so that they don't begin to run and fail with a false positive.
Updates #10719.
For #30612.
Change-Id: I6dd320714a279c395882c1b2ebfbb2fce58f913b
Reviewed-on: https://go-review.googlesource.com/c/go/+/513779
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Heschi Kreinick <heschi@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Diffstat (limited to 'src/syscall/syscall_linux_test.go')
| -rw-r--r-- | src/syscall/syscall_linux_test.go | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/syscall/syscall_linux_test.go b/src/syscall/syscall_linux_test.go index ff128b1a19..1300fc046e 100644 --- a/src/syscall/syscall_linux_test.go +++ b/src/syscall/syscall_linux_test.go @@ -6,6 +6,7 @@ package syscall_test import ( "fmt" + "internal/testenv" "io" "io/fs" "os" @@ -198,6 +199,13 @@ func TestSyscallNoError(t *testing.T) { if os.Getuid() != 0 { t.Skip("skipping root only test") } + if testing.Short() && testenv.Builder() != "" && os.Getenv("USER") == "swarming" { + // The Go build system's swarming user is known not to be root. + // Unfortunately, it sometimes appears as root due the current + // implementation of a no-network check using 'unshare -n -r'. + // Since this test does need root to work, we need to skip it. + t.Skip("skipping root only test on a non-root builder") + } if runtime.GOOS == "android" { t.Skip("skipping on rooted android, see issue 27364") @@ -516,6 +524,13 @@ func TestSetuidEtc(t *testing.T) { if syscall.Getuid() != 0 { t.Skip("skipping root only test") } + if testing.Short() && testenv.Builder() != "" && os.Getenv("USER") == "swarming" { + // The Go build system's swarming user is known not to be root. + // Unfortunately, it sometimes appears as root due the current + // implementation of a no-network check using 'unshare -n -r'. + // Since this test does need root to work, we need to skip it. + t.Skip("skipping root only test on a non-root builder") + } if _, err := os.Stat("/etc/alpine-release"); err == nil { t.Skip("skipping glibc test on alpine - go.dev/issue/19938") } |
