1
0
mirror of https://github.com/golang/go synced 2024-11-19 22:54:39 -07:00

cmd/internal/test2json: support subtests containing colons

The "updates" lines, such as RUN, do not contain a colon. However,
test2json looked for one anyway, meaning that it would be thrown off if
it encountered a line like:

	=== RUN   TestWithColons/[::1]

In that case, it must not use the first colon it encounters to separate
the action from the test name.

Fixes #23920.

Change-Id: I82eff23e24b83dae183c0cf9f85fc5f409f51c25
Reviewed-on: https://go-review.googlesource.com/98445
Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
Daniel Martí 2018-03-03 19:53:53 +00:00
parent 32409a2dfc
commit 0c5cfec844
3 changed files with 27 additions and 1 deletions

View File

@ -175,6 +175,7 @@ func (c *converter) handleInputLine(line []byte) {
// "=== RUN "
// "=== PAUSE "
// "=== CONT "
actionColon := false
origLine := line
ok := false
indent := 0
@ -196,6 +197,7 @@ func (c *converter) handleInputLine(line []byte) {
}
for _, magic := range reports {
if bytes.HasPrefix(line, magic) {
actionColon = true
ok = true
break
}
@ -209,7 +211,10 @@ func (c *converter) handleInputLine(line []byte) {
}
// Parse out action and test name.
i := bytes.IndexByte(line, ':') + 1
i := 0
if actionColon {
i = bytes.IndexByte(line, ':') + 1
}
if i == 0 {
i = len(updates[0])
}

View File

@ -0,0 +1,14 @@
{"Action":"run","Test":"TestWithColons"}
{"Action":"output","Test":"TestWithColons","Output":"=== RUN TestWithColons\n"}
{"Action":"run","Test":"TestWithColons/[::1]"}
{"Action":"output","Test":"TestWithColons/[::1]","Output":"=== RUN TestWithColons/[::1]\n"}
{"Action":"run","Test":"TestWithColons/127.0.0.1:0"}
{"Action":"output","Test":"TestWithColons/127.0.0.1:0","Output":"=== RUN TestWithColons/127.0.0.1:0\n"}
{"Action":"output","Test":"TestWithColons","Output":"--- PASS: TestWithColons (0.00s)\n"}
{"Action":"output","Test":"TestWithColons/[::1]","Output":" --- PASS: TestWithColons/[::1] (0.00s)\n"}
{"Action":"pass","Test":"TestWithColons/[::1]"}
{"Action":"output","Test":"TestWithColons/127.0.0.1:0","Output":" --- PASS: TestWithColons/127.0.0.1:0 (0.00s)\n"}
{"Action":"pass","Test":"TestWithColons/127.0.0.1:0"}
{"Action":"pass","Test":"TestWithColons"}
{"Action":"output","Output":"PASS\n"}
{"Action":"pass"}

View File

@ -0,0 +1,7 @@
=== RUN TestWithColons
=== RUN TestWithColons/[::1]
=== RUN TestWithColons/127.0.0.1:0
--- PASS: TestWithColons (0.00s)
--- PASS: TestWithColons/[::1] (0.00s)
--- PASS: TestWithColons/127.0.0.1:0 (0.00s)
PASS