浏览代码

daemon/oci_linux_test: Skip privileged tests when non-root

These tests fail when run by a non-root user

  === RUN   TestTmpfsDevShmNoDupMount
      oci_linux_test.go:29: assertion failed: error is not nil: mkdir /var/lib/docker: permission denied
  --- FAIL: TestTmpfsDevShmNoDupMount (0.00s)
  === RUN   TestIpcPrivateVsReadonly
      oci_linux_test.go:29: assertion failed: error is not nil: mkdir /var/lib/docker: permission denied
  --- FAIL: TestIpcPrivateVsReadonly (0.00s)
  === RUN   TestSysctlOverride
      oci_linux_test.go:29: assertion failed: error is not nil: mkdir /var/lib/docker: permission denied
  --- FAIL: TestSysctlOverride (0.00s)
  === RUN   TestSysctlOverrideHost
      oci_linux_test.go:29: assertion failed: error is not nil: mkdir /var/lib/docker: permission denied
  --- FAIL: TestSysctlOverrideHost (0.00s)

Signed-off-by: Arnaud Rebillout <elboulangero@gmail.com>
Arnaud Rebillout 4 年之前
父节点
当前提交
6349b32e1b
共有 1 个文件被更改,包括 5 次插入0 次删除
  1. 5 0
      daemon/oci_linux_test.go

+ 5 - 0
daemon/oci_linux_test.go

@@ -15,6 +15,7 @@ import (
 	"github.com/docker/libnetwork"
 	"gotest.tools/v3/assert"
 	is "gotest.tools/v3/assert/cmp"
+	"gotest.tools/v3/skip"
 )
 
 func setupFakeDaemon(t *testing.T, c *container.Container) *Daemon {
@@ -62,6 +63,7 @@ func cleanupFakeContainer(c *container.Container) {
 // in "Duplicate mount point" error from the engine.
 // https://github.com/moby/moby/issues/35455
 func TestTmpfsDevShmNoDupMount(t *testing.T) {
+	skip.If(t, os.Getuid() != 0, "skipping test that requires root")
 	c := &container.Container{
 		ShmPath: "foobar", // non-empty, for c.IpcMounts() to work
 		HostConfig: &containertypes.HostConfig{
@@ -84,6 +86,7 @@ func TestTmpfsDevShmNoDupMount(t *testing.T) {
 // the resulting /dev/shm mount is NOT made read-only.
 // https://github.com/moby/moby/issues/36503
 func TestIpcPrivateVsReadonly(t *testing.T) {
+	skip.If(t, os.Getuid() != 0, "skipping test that requires root")
 	c := &container.Container{
 		HostConfig: &containertypes.HostConfig{
 			IpcMode:        containertypes.IpcMode("private"),
@@ -108,6 +111,7 @@ func TestIpcPrivateVsReadonly(t *testing.T) {
 // TestSysctlOverride ensures that any implicit sysctls (such as
 // Config.Domainname) are overridden by an explicit sysctl in the HostConfig.
 func TestSysctlOverride(t *testing.T) {
+	skip.If(t, os.Getuid() != 0, "skipping test that requires root")
 	c := &container.Container{
 		Config: &containertypes.Config{
 			Hostname:   "foobar",
@@ -149,6 +153,7 @@ func TestSysctlOverride(t *testing.T) {
 // TestSysctlOverrideHost ensures that any implicit network sysctls are not set
 // with host networking
 func TestSysctlOverrideHost(t *testing.T) {
+	skip.If(t, os.Getuid() != 0, "skipping test that requires root")
 	c := &container.Container{
 		Config: &containertypes.Config{},
 		HostConfig: &containertypes.HostConfig{