]> Cypherpunks repositories - gostls13.git/commitdiff
os/exec: skip TestFindExecutableVsNoexec if mount failed
authorKir Kolyshkin <kolyshkin@gmail.com>
Wed, 7 Sep 2022 17:30:46 +0000 (10:30 -0700)
committerGopher Robot <gobot@golang.org>
Wed, 7 Sep 2022 18:41:21 +0000 (18:41 +0000)
Apparently, some testing environments do not allow root to mount tmpfs
(due to e.g. AppArmor profile disallowing mount(2) syscall).

Always skip the test if the mount has failed.

Fixes the test issue introduced by CL 414824.

Change-Id: Ic565d2e6f277f2926d85a351be7df2498ffba656
Reviewed-on: https://go-review.googlesource.com/c/go/+/429175
Reviewed-by: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Bryan Mills <bcmills@google.com>
Auto-Submit: Bryan Mills <bcmills@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
src/os/exec/lp_linux_test.go

index 96051b5490094d2e5737bb5a6397b33577153d9d..5d77427d89be6bfdfaa5cd906406e75e9332bbff 100644 (file)
@@ -23,10 +23,8 @@ func TestFindExecutableVsNoexec(t *testing.T) {
        // Create a tmpfs mount.
        err := syscall.Mount("tmpfs", tmp, "tmpfs", 0, "")
        if err != nil {
-               if os.Geteuid() == 0 {
-                       t.Fatalf("tmpfs mount failed: %v", err)
-               }
-               // Requires root or CAP_SYS_ADMIN.
+               // Usually this means lack of CAP_SYS_ADMIN, but there might be
+               // other reasons, expecially in restricted test environments.
                t.Skipf("requires ability to mount tmpfs (%v)", err)
        }
        t.Cleanup(func() {