From f1f39616eb052455a383de589bbc1eaa9ab5d96c Mon Sep 17 00:00:00 2001 From: unclejack Date: Sat, 19 Oct 2013 01:53:15 +0300 Subject: [PATCH] add test to ensure / can't be bind mounted This adds a test which checks that we're erroring out when we attempt to bind mount root in a container. --- commands_test.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/commands_test.go b/commands_test.go index 2c0e319787..e33ba9c7cc 100644 --- a/commands_test.go +++ b/commands_test.go @@ -660,4 +660,22 @@ func TestCmdLogs(t *testing.T) { if err := cli.CmdLogs(globalRuntime.List()[0].ID); err != nil { t.Fatal(err) } + +// Expected behaviour: using / as a bind mount source should throw an error +func TestRunErrorBindMountRootSource(t *testing.T) { + + cli := NewDockerCli(nil, nil, ioutil.Discard, testDaemonProto, testDaemonAddr) + defer cleanup(globalRuntime) + + c := make(chan struct{}) + go func() { + defer close(c) + if err := cli.CmdRun("-v", "/:/tmp", unitTestImageID, "echo 'should fail'"); err == nil { + t.Fatal("should have failed to run when using / as a source for the bind mount") + } + }() + + setTimeout(t, "CmdRun timed out", 5*time.Second, func() { + <-c + }) }