From cecb5272ed949a35d83cfe30d452c8720a2e3109 Mon Sep 17 00:00:00 2001 From: Akihiro Suda Date: Fri, 25 Nov 2016 05:54:38 +0000 Subject: [PATCH] add a test for ensuring the behavior of read-only /dev/shm The test ensures that `docker run --read-only -v /var/empty:/dev/shm:ro` makes /dev/shm read-only Signed-off-by: Akihiro Suda Upstream-commit: 46ade6acb5b6cdb80287a83afd16c20c6a8b4dff Component: engine --- .../engine/integration-cli/docker_cli_run_test.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/components/engine/integration-cli/docker_cli_run_test.go b/components/engine/integration-cli/docker_cli_run_test.go index dd3f4cef32..6bab59245e 100644 --- a/components/engine/integration-cli/docker_cli_run_test.go +++ b/components/engine/integration-cli/docker_cli_run_test.go @@ -4879,3 +4879,16 @@ func (s *delayedReader) Read([]byte) (int, error) { time.Sleep(500 * time.Millisecond) return 0, io.EOF } + +// #28823 (originally #28639) +func (s *DockerSuite) TestRunMountReadOnlyDevShm(c *check.C) { + testRequires(c, SameHostDaemon, DaemonIsLinux) + emptyDir, err := ioutil.TempDir("", "test-read-only-dev-shm") + c.Assert(err, check.IsNil) + defer os.RemoveAll(emptyDir) + out, _, err := dockerCmdWithError("run", "--rm", "--read-only", + "-v", fmt.Sprintf("%s:/dev/shm:ro", emptyDir), + "busybox", "touch", "/dev/shm/foo") + c.Assert(err, checker.NotNil, check.Commentf(out)) + c.Assert(out, checker.Contains, "Read-only file system") +}