From: Kir Kolyshkin Date: Fri, 15 Jul 2022 02:40:23 +0000 (-0700) Subject: syscall: fix skipping some tests on Linux X-Git-Tag: go1.20rc1~1229 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=a0f05823e4953d137310de164b2544e41dd767d2;p=gostls13.git 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 --- 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") }