Fix docker invalid-subcommand
regression
Starting with a3fe7d62b8274d69930286fb14653cccf37acadb, `docker invalid-subcommand` did not exit with non-zero status. Fix #1428 Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
This commit is contained in:
parent
ab50c2f2b2
commit
d708cada43
@ -33,6 +33,9 @@ func newDockerCommand(dockerCli *command.DockerCli) *cobra.Command {
|
|||||||
SilenceErrors: true,
|
SilenceErrors: true,
|
||||||
TraverseChildren: true,
|
TraverseChildren: true,
|
||||||
Args: noArgs,
|
Args: noArgs,
|
||||||
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
return command.ShowHelp(dockerCli.Err())(cmd, args)
|
||||||
|
},
|
||||||
PersistentPreRunE: func(cmd *cobra.Command, args []string) error {
|
PersistentPreRunE: func(cmd *cobra.Command, args []string) error {
|
||||||
// flags must be the top-level command flags, not cmd.Flags()
|
// flags must be the top-level command flags, not cmd.Flags()
|
||||||
opts.Common.SetDefaultOptions(flags)
|
opts.Common.SetDefaultOptions(flags)
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
@ -31,3 +32,20 @@ func TestExitStatusForInvalidSubcommandWithHelpFlag(t *testing.T) {
|
|||||||
err := cmd.Execute()
|
err := cmd.Execute()
|
||||||
assert.Error(t, err, "unknown help topic: invalid")
|
assert.Error(t, err, "unknown help topic: invalid")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestExitStatusForInvalidSubcommand(t *testing.T) {
|
||||||
|
discard := ioutil.Discard
|
||||||
|
cmd := newDockerCommand(command.NewDockerCli(os.Stdin, discard, discard, false, nil))
|
||||||
|
cmd.SetArgs([]string{"invalid"})
|
||||||
|
err := cmd.Execute()
|
||||||
|
assert.Check(t, is.ErrorContains(err, "docker: 'invalid' is not a docker command."))
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestVersion(t *testing.T) {
|
||||||
|
var b bytes.Buffer
|
||||||
|
cmd := newDockerCommand(command.NewDockerCli(os.Stdin, &b, &b, false, nil))
|
||||||
|
cmd.SetArgs([]string{"--version"})
|
||||||
|
err := cmd.Execute()
|
||||||
|
assert.NilError(t, err)
|
||||||
|
assert.Check(t, is.Contains(b.String(), "Docker version"))
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user