aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad Fitzpatrick <bradfitz@golang.org>2019-02-15 18:55:45 +0000
committerBrad Fitzpatrick <bradfitz@golang.org>2019-02-15 21:10:28 +0000
commita4aee30cb4ff03de514873a8f054315870663920 (patch)
treed5a535905f3bc39ab262c2e17404a76461f9f9e6
parente3a53db2b838655f5f1d887156cfbc4ed0a0b714 (diff)
downloadgo-a4aee30cb4ff03de514873a8f054315870663920.tar.gz
go-a4aee30cb4ff03de514873a8f054315870663920.zip
[release-branch.go1.12] syscall: skip TestSyscallNoError when temp dir is mounted nosuid
Fixes #30258 Change-Id: I73b63eb9d3aca00f562fdc3af010e96269bb6b9c Reviewed-on: https://go-review.googlesource.com/c/162891 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Katie Hockman <katie@golang.org> (cherry picked from commit 5fcc24074f8e48cd8404bd250c2c268aca2bc3d2) Reviewed-on: https://go-review.googlesource.com/c/162818 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org>
-rw-r--r--src/syscall/syscall_linux_test.go13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/syscall/syscall_linux_test.go b/src/syscall/syscall_linux_test.go
index 293549a841..8a578639bd 100644
--- a/src/syscall/syscall_linux_test.go
+++ b/src/syscall/syscall_linux_test.go
@@ -360,10 +360,23 @@ func TestSyscallNoError(t *testing.T) {
strconv.FormatUint(uint64(-uid), 10) + " / " +
strconv.FormatUint(uint64(uid), 10)
if got != want {
+ if filesystemIsNoSUID(tmpBinary) {
+ t.Skip("skipping test when temp dir is mounted nosuid")
+ }
t.Errorf("expected %s, got %s", want, got)
}
}
+// filesystemIsNoSUID reports whether the filesystem for the given
+// path is mounted nosuid.
+func filesystemIsNoSUID(path string) bool {
+ var st syscall.Statfs_t
+ if syscall.Statfs(path, &st) != nil {
+ return false
+ }
+ return st.Flags&syscall.MS_NOSUID != 0
+}
+
func syscallNoError() {
// Test that the return value from SYS_GETEUID32 (which cannot fail)
// doesn't get treated as an error (see https://golang.org/issue/22924)