]> Cypherpunks repositories - gostls13.git/commitdiff
syscall: fix skipping some tests on Linux
authorKir Kolyshkin <kolyshkin@gmail.com>
Fri, 15 Jul 2022 02:40:23 +0000 (19:40 -0700)
committerGopher Robot <gobot@golang.org>
Sat, 3 Sep 2022 18:21:45 +0000 (18:21 +0000)
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 <gobot@golang.org>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
Run-TryBot: Kirill Kolyshkin <kolyshkin@gmail.com>
Reviewed-by: Heschi Kreinick <heschi@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
src/syscall/exec_linux_test.go

index 0ec9c4db0f182e7ee2126731b39261565c935d75..8a9258d1167a29577c6ed0a1ea5f6e179e0dde3a 100644 (file)
@@ -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")
        }