From 004fc6b9e4b5bd7cb000525aeb905f4fc8bd4aea Mon Sep 17 00:00:00 2001 From: Daniel Nephin Date: Tue, 15 Nov 2016 11:18:33 -0500 Subject: [PATCH] exit with status 1 if help is called on an invalid command. Signed-off-by: Daniel Nephin --- docker_test.go | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/docker_test.go b/docker_test.go index 47e24eb0da..8738f6005d 100644 --- a/docker_test.go +++ b/docker_test.go @@ -1,13 +1,14 @@ package main import ( + "io/ioutil" "os" "testing" "github.com/Sirupsen/logrus" - "github.com/docker/docker/utils" - "github.com/docker/docker/cli/command" + "github.com/docker/docker/pkg/testutil/assert" + "github.com/docker/docker/utils" ) func TestClientDebugEnabled(t *testing.T) { @@ -16,14 +17,16 @@ func TestClientDebugEnabled(t *testing.T) { cmd := newDockerCommand(&command.DockerCli{}) cmd.Flags().Set("debug", "true") - if err := cmd.PersistentPreRunE(cmd, []string{}); err != nil { - t.Fatalf("Unexpected error: %s", err.Error()) - } - - if os.Getenv("DEBUG") != "1" { - t.Fatal("expected debug enabled, got false") - } - if logrus.GetLevel() != logrus.DebugLevel { - t.Fatalf("expected logrus debug level, got %v", logrus.GetLevel()) - } + err := cmd.PersistentPreRunE(cmd, []string{}) + assert.NilError(t, err) + assert.Equal(t, os.Getenv("DEBUG"), "1") + assert.Equal(t, logrus.GetLevel(), logrus.DebugLevel) +} + +func TestExitStatusForInvalidSubcommandWithHelpFlag(t *testing.T) { + discard := ioutil.Discard + cmd := newDockerCommand(command.NewDockerCli(os.Stdin, discard, discard)) + cmd.SetArgs([]string{"help", "invalid"}) + err := cmd.Execute() + assert.Error(t, err, "unknown help topic: invalid") }