mirror of
https://github.com/golang/go
synced 2024-10-04 15:09:59 +00:00
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>
This commit is contained in:
parent
65c2069a9f
commit
5fcc24074f
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue