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:
parent
32409a2dfc
commit
0c5cfec844
@ -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])
|
||||
}
|
||||
|
14
src/cmd/internal/test2json/testdata/issue23920.json
vendored
Normal file
14
src/cmd/internal/test2json/testdata/issue23920.json
vendored
Normal 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"}
|
7
src/cmd/internal/test2json/testdata/issue23920.test
vendored
Normal file
7
src/cmd/internal/test2json/testdata/issue23920.test
vendored
Normal 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
|
Loading…
Reference in New Issue
Block a user