]> Cypherpunks repositories - gostls13.git/commitdiff
syscall: skip TestCloneNEWUSERAndRemapNoRootDisableSetgroups before 3.19
authorIan Lance Taylor <iant@golang.org>
Sat, 13 Jun 2015 20:46:10 +0000 (13:46 -0700)
committerIan Lance Taylor <iant@golang.org>
Sun, 14 Jun 2015 01:52:54 +0000 (01:52 +0000)
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/11055
Reviewed-by: Mikio Hara <mikioh.mikioh@gmail.com>
src/syscall/exec_linux_test.go

index a39fd58c1fd9ab1e2228642a660bb56f3a5c13d9..af5ae654fb674f6097f63ec1bd86465cd51ab1bd 100644 (file)
@@ -7,8 +7,11 @@
 package syscall_test
 
 import (
+       "io/ioutil"
        "os"
        "os/exec"
+       "regexp"
+       "strconv"
        "strings"
        "syscall"
        "testing"
@@ -62,10 +65,33 @@ func TestCloneNEWUSERAndRemapRootEnableSetgroups(t *testing.T) {
        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) {
        if os.Getuid() == 0 {
                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)
 }