cmd/go: account for flags when parsing regexps in TestScript

Test script expects the regexp argument for stdout, stderr, and cmp
to be the first argument after the command, but that might not be the
case if the -q or -count flags are provided. Treat the first argument
after a flag as a regexp instead.

For #39958

Change-Id: I369926109ec10cca8b2c3baca27e7a3f7baf364b
Reviewed-on: https://go-review.googlesource.com/c/go/+/267877
Trust: Michael Matloob <matloob@golang.org>
Run-TryBot: Michael Matloob <matloob@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
This commit is contained in:
Michael Matloob 2020-11-03 13:12:19 -05:00
parent 370682ae98
commit d508d86cf1

View file

@ -1255,7 +1255,12 @@ func (ts *testScript) parse(line string) command {
if cmd.name != "" {
cmd.args = append(cmd.args, arg)
isRegexp = false // Commands take only one regexp argument, so no subsequent args are regexps.
// Commands take only one regexp argument (after the optional flags),
// so no subsequent args are regexps. Liberally assume an argument that
// starts with a '-' is a flag.
if len(arg) == 0 || arg[0] != '-' {
isRegexp = false
}
return
}