Return usage on parseExec error.

Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
Upstream-commit: 7fdbd90f8805736aa78156faf7e6f8fdd2384af7
Component: engine
This commit is contained in:
Jessica Frazelle
2014-12-23 11:16:23 -08:00
parent 8644c9a097
commit 301d5a4920
2 changed files with 17 additions and 0 deletions

View File

@ -2589,6 +2589,7 @@ func (cli *DockerCli) CmdExec(args ...string) error {
execConfig, err := runconfig.ParseExec(cmd, args)
if err != nil {
cmd.Usage()
return err
}
if execConfig.Container == "" {

View File

@ -351,3 +351,19 @@ func TestExecTtyWithoutStdin(t *testing.T) {
logDone("exec - forbid piped stdin to tty enabled container")
}
func TestExecParseError(t *testing.T) {
defer deleteAllContainers()
runCmd := exec.Command(dockerBinary, "run", "-d", "--name", "top", "busybox", "top")
if out, _, err := runCommandWithOutput(runCmd); err != nil {
t.Fatal(out, err)
}
// Test normal (non-detached) case first
cmd := exec.Command(dockerBinary, "exec", "top")
if out, _, err := runCommandWithOutput(cmd); err == nil || !strings.Contains(out, "Usage:") {
t.Fatalf("Should have thrown error & given usage: %s", out)
}
logDone("exec - error on parseExec should return usage")
}