From 080e34c27c9d24f1c2836ecf0807fa946ed0956b Mon Sep 17 00:00:00 2001 From: Shijiang Wei Date: Sat, 12 Mar 2016 18:58:03 +0800 Subject: [PATCH 1/2] speed up DockerSuite.TestRunContainerWithReadonlyRootfs Signed-off-by: Shijiang Wei Upstream-commit: fc284a856947538d3cc086e53740b2b782df53b9 Component: engine --- .../integration-cli/docker_cli_run_test.go | 32 ++++++++----------- 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/components/engine/integration-cli/docker_cli_run_test.go b/components/engine/integration-cli/docker_cli_run_test.go index efbb25e617..18081ab327 100644 --- a/components/engine/integration-cli/docker_cli_run_test.go +++ b/components/engine/integration-cli/docker_cli_run_test.go @@ -2752,9 +2752,7 @@ func (s *DockerSuite) TestRunContainerWithReadonlyRootfs(c *check.C) { // Not applicable on Windows which does not support --read-only testRequires(c, DaemonIsLinux) - for _, f := range []string{"/file", "/etc/hosts", "/etc/resolv.conf", "/etc/hostname", "/sys/kernel", "/dev/.dont.touch.me"} { - testReadOnlyFile(f, c) - } + testReadOnlyFile(c, "/file", "/etc/hosts", "/etc/resolv.conf", "/etc/hostname", "/sys/kernel", "/dev/.dont.touch.me") } func (s *DockerSuite) TestPermissionsPtsReadonlyRootfs(c *check.C) { @@ -2774,26 +2772,24 @@ func (s *DockerSuite) TestPermissionsPtsReadonlyRootfs(c *check.C) { } } -func testReadOnlyFile(filename string, c *check.C) { +func testReadOnlyFile(c *check.C, filenames ...string) { // Not applicable on Windows which does not support --read-only testRequires(c, DaemonIsLinux, NotUserNamespace) + touch := "touch " + strings.Join(filenames, " ") + out, _, err := dockerCmdWithError("run", "--read-only", "--rm", "busybox", "sh", "-c", touch) + c.Assert(err, checker.NotNil) - out, _, err := dockerCmdWithError("run", "--read-only", "--rm", "busybox", "touch", filename) - if err == nil { - c.Fatal("expected container to error on run with read only error") - } - expected := "Read-only file system" - if !strings.Contains(string(out), expected) { - c.Fatalf("expected output from failure to contain %s but contains %s", expected, out) + for _, f := range filenames { + expected := "touch: " + f + ": Read-only file system" + c.Assert(out, checker.Contains, expected) } - out, _, err = dockerCmdWithError("run", "--read-only", "--privileged", "--rm", "busybox", "touch", filename) - if err == nil { - c.Fatal("expected container to error on run with read only error") - } - expected = "Read-only file system" - if !strings.Contains(string(out), expected) { - c.Fatalf("expected output from failure to contain %s but contains %s", expected, out) + out, _, err = dockerCmdWithError("run", "--read-only", "--privileged", "--rm", "busybox", "sh", "-c", touch) + c.Assert(err, checker.NotNil) + + for _, f := range filenames { + expected := "touch: " + f + ": Read-only file system" + c.Assert(out, checker.Contains, expected) } } From 9875b5b95d492c6b74c6ff13856ab95f5862cadd Mon Sep 17 00:00:00 2001 From: Shijiang Wei Date: Sat, 12 Mar 2016 18:58:29 +0800 Subject: [PATCH 2/2] speed up DockerSuite.TestRunApparmorProcDirectory Signed-off-by: Shijiang Wei Upstream-commit: 7369ddd89fb0c2a85640013265d1e6d9ba8b31c9 Component: engine --- components/engine/integration-cli/docker_cli_run_unix_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/engine/integration-cli/docker_cli_run_unix_test.go b/components/engine/integration-cli/docker_cli_run_unix_test.go index fc54556ef1..1d2d7fdecc 100644 --- a/components/engine/integration-cli/docker_cli_run_unix_test.go +++ b/components/engine/integration-cli/docker_cli_run_unix_test.go @@ -911,12 +911,12 @@ func (s *DockerSuite) TestRunApparmorProcDirectory(c *check.C) { testRequires(c, SameHostDaemon, Apparmor) // running w seccomp unconfined tests the apparmor profile - runCmd := exec.Command(dockerBinary, "run", "--security-opt", "seccomp:unconfined", "debian:jessie", "chmod", "777", "/proc/1/cgroup") + runCmd := exec.Command(dockerBinary, "run", "--security-opt", "seccomp:unconfined", "busybox", "chmod", "777", "/proc/1/cgroup") if out, _, err := runCommandWithOutput(runCmd); err == nil || !(strings.Contains(out, "Permission denied") || strings.Contains(out, "Operation not permitted")) { c.Fatalf("expected chmod 777 /proc/1/cgroup to fail, got %s: %v", out, err) } - runCmd = exec.Command(dockerBinary, "run", "--security-opt", "seccomp:unconfined", "debian:jessie", "chmod", "777", "/proc/1/attr/current") + runCmd = exec.Command(dockerBinary, "run", "--security-opt", "seccomp:unconfined", "busybox", "chmod", "777", "/proc/1/attr/current") if out, _, err := runCommandWithOutput(runCmd); err == nil || !(strings.Contains(out, "Permission denied") || strings.Contains(out, "Operation not permitted")) { c.Fatalf("expected chmod 777 /proc/1/attr/current to fail, got %s: %v", out, err) }