diff --git a/cobra_test.go b/cobra_test.go index 8b433803..c9eef5d7 100644 --- a/cobra_test.go +++ b/cobra_test.go @@ -416,8 +416,11 @@ func TestGrandChildSameName(t *testing.T) { } func TestFlagLong(t *testing.T) { - noRRSetupTest("echo --intone=13 something here") + noRRSetupTest("echo --intone=13 something -- here") + if cmdEcho.ArgsLenAtDash() != 1 { + t.Errorf("expected argsLenAtDash: %d but got %d", 1, cmdRootNoRun.ArgsLenAtDash()) + } if strings.Join(te, " ") != "something here" { t.Errorf("flags didn't leave proper args remaining..%s given", te) } @@ -430,8 +433,11 @@ func TestFlagLong(t *testing.T) { } func TestFlagShort(t *testing.T) { - noRRSetupTest("echo -i13 something here") + noRRSetupTest("echo -i13 -- something here") + if cmdEcho.ArgsLenAtDash() != 0 { + t.Errorf("expected argsLenAtDash: %d but got %d", 0, cmdRootNoRun.ArgsLenAtDash()) + } if strings.Join(te, " ") != "something here" { t.Errorf("flags didn't leave proper args remaining..%s given", te) } diff --git a/command.go b/command.go index 6f73f715..0cc0b72a 100644 --- a/command.go +++ b/command.go @@ -470,6 +470,10 @@ func (c *Command) Root() *Command { return findRoot(c) } +func (c *Command) ArgsLenAtDash() int { + return c.Flags().ArgsLenAtDash() +} + func (c *Command) execute(a []string) (err error) { if c == nil { return fmt.Errorf("Called Execute() on a nil Command")