From a0f05823e4953d137310de164b2544e41dd767d2 Mon Sep 17 00:00:00 2001 From: Kir Kolyshkin Date: Thu, 14 Jul 2022 19:40:23 -0700 Subject: [PATCH] syscall: fix skipping some tests on Linux The kernel knob /proc/sys/kernel/unprivileged_userns_clone is only available in Debian (and Ubuntu) kernels, so if the tests are run on e.g. Fedora, skipUnprivilegedUserClone() skips a lot of tests. Modify it to treat ENOENT as "it should work". Change-Id: I959201ede139ede989cc8ab646c9bf51e0539ada Reviewed-on: https://go-review.googlesource.com/c/go/+/417694 TryBot-Result: Gopher Robot Auto-Submit: Ian Lance Taylor Reviewed-by: Tobias Klauser Run-TryBot: Kirill Kolyshkin Reviewed-by: Heschi Kreinick Run-TryBot: Ian Lance Taylor Reviewed-by: Ian Lance Taylor --- src/syscall/exec_linux_test.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/syscall/exec_linux_test.go b/src/syscall/exec_linux_test.go index 0ec9c4db0f..8a9258d116 100644 --- a/src/syscall/exec_linux_test.go +++ b/src/syscall/exec_linux_test.go @@ -65,6 +65,10 @@ func skipUnprivilegedUserClone(t *testing.T) { // Skip the test if the sysctl that prevents unprivileged user // from creating user namespaces is enabled. data, errRead := os.ReadFile("/proc/sys/kernel/unprivileged_userns_clone") + if os.IsNotExist(errRead) { + // This file is only available in some Debian/Ubuntu kernels. + return + } if errRead != nil || len(data) < 1 || data[0] == '0' { t.Skip("kernel prohibits user namespace in unprivileged process") } -- 2.50.0