Commit 6b24da6a authored by Ian Lance Taylor's avatar Ian Lance Taylor

syscall: skip TestCloneNEWUSERAndRemapNoRootDisableSetgroups before 3.19

The test fails on Ubuntu Trusty for some reason, probably because of
some set of kernel patches.

Change-Id: I52f7ca50b96fea5725817c9e9198860d419f9313
Reviewed-on: https://go-review.googlesource.com/11055Reviewed-by: default avatarMikio Hara <mikioh.mikioh@gmail.com>
parent a84ac5b5
...@@ -7,8 +7,11 @@ ...@@ -7,8 +7,11 @@
package syscall_test package syscall_test
import ( import (
"io/ioutil"
"os" "os"
"os/exec" "os/exec"
"regexp"
"strconv"
"strings" "strings"
"syscall" "syscall"
"testing" "testing"
...@@ -62,10 +65,33 @@ func TestCloneNEWUSERAndRemapRootEnableSetgroups(t *testing.T) { ...@@ -62,10 +65,33 @@ func TestCloneNEWUSERAndRemapRootEnableSetgroups(t *testing.T) {
testNEWUSERRemap(t, 0, false) testNEWUSERRemap(t, 0, false)
} }
// kernelVersion returns the major and minor versions of the Linux
// kernel version. It calls t.Skip if it can't figure it out.
func kernelVersion(t *testing.T) (int, int) {
bytes, err := ioutil.ReadFile("/proc/version")
if err != nil {
t.Skipf("can't get kernel version: %v", err)
}
matches := regexp.MustCompile("([0-9]+).([0-9]+)").FindSubmatch(bytes)
if len(matches) < 3 {
t.Skipf("can't get kernel version from %s", bytes)
}
major, _ := strconv.Atoi(string(matches[1]))
minor, _ := strconv.Atoi(string(matches[2]))
return major, minor
}
func TestCloneNEWUSERAndRemapNoRootDisableSetgroups(t *testing.T) { func TestCloneNEWUSERAndRemapNoRootDisableSetgroups(t *testing.T) {
if os.Getuid() == 0 { if os.Getuid() == 0 {
t.Skip("skipping unprivileged user only test") t.Skip("skipping unprivileged user only test")
} }
// This test fails for some reason on Ubuntu Trusty.
major, minor := kernelVersion(t)
if major < 3 || (major == 3 && minor < 19) {
t.Skipf("skipping on kernel version before 3.19 (%d.%d)", major, minor)
}
testNEWUSERRemap(t, os.Getuid(), false) testNEWUSERRemap(t, os.Getuid(), false)
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment