21189: On usage error, exit 64 and do not auto-restart.
[arvados.git] / lib / cmd / cmd_test.go
index d8a4861572341046dab556ade76a0cb4f2ffe342..b4ce7194c1e020e35ac2bf080a8ad66b95e46f60 100644 (file)
@@ -12,7 +12,7 @@ import (
        "strings"
        "testing"
 
-       "git.curoverse.com/arvados.git/lib/cmdtest"
+       "git.arvados.org/arvados.git/lib/cmdtest"
        check "gopkg.in/check.v1"
 )
 
@@ -42,14 +42,24 @@ func (s *CmdSuite) TestHello(c *check.C) {
        c.Check(stderr.String(), check.Equals, "")
 }
 
+func (s *CmdSuite) TestHelloViaProg(c *check.C) {
+       defer cmdtest.LeakCheck(c)()
+       stdout := bytes.NewBuffer(nil)
+       stderr := bytes.NewBuffer(nil)
+       exited := testCmd.RunCommand("/usr/local/bin/echo", []string{"hello", "world"}, bytes.NewReader(nil), stdout, stderr)
+       c.Check(exited, check.Equals, 0)
+       c.Check(stdout.String(), check.Equals, "hello world\n")
+       c.Check(stderr.String(), check.Equals, "")
+}
+
 func (s *CmdSuite) TestUsage(c *check.C) {
        defer cmdtest.LeakCheck(c)()
        stdout := bytes.NewBuffer(nil)
        stderr := bytes.NewBuffer(nil)
        exited := testCmd.RunCommand("prog", []string{"nosuchcommand", "hi"}, bytes.NewReader(nil), stdout, stderr)
-       c.Check(exited, check.Equals, 2)
+       c.Check(exited, check.Equals, 64)
        c.Check(stdout.String(), check.Equals, "")
-       c.Check(stderr.String(), check.Matches, `(?ms)^unrecognized command "nosuchcommand"\n.*echo.*\n`)
+       c.Check(stderr.String(), check.Matches, `(?ms)^prog: unrecognized command "nosuchcommand"\n.*echo.*\n`)
 }
 
 func (s *CmdSuite) TestSubcommandToFront(c *check.C) {