Commit b32ac546 authored by Russ Cox's avatar Russ Cox

cmd/test2json: fix test log output containing test output

If test case framing appears in ordinary test output,
then test2json can get confused. If the fake framing is being
saved with t.Logf/t.Errorf/etc then we can already
distinguish it from real framing, and the code did.
It just forgot to write that framing as output (1-line fix).

If the fake framing is being generated by printing directly
to stdout/stderr, then test2json will simply get confused.
There's not a lot to do at that point (maybe it's even a feature).

Fixes #23036.

Change-Id: I29449c7ace304172b89d8babe23de507c0500455
Reviewed-on: https://go-review.googlesource.com/86238
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
parent 23e68d76
...@@ -226,6 +226,7 @@ func (c *converter) handleInputLine(line []byte) { ...@@ -226,6 +226,7 @@ func (c *converter) handleInputLine(line []byte) {
if len(c.report) < indent { if len(c.report) < indent {
// Nested deeper than expected. // Nested deeper than expected.
// Treat this line as plain output. // Treat this line as plain output.
c.output.write(origLine)
return return
} }
// Flush reports at this indentation level or deeper. // Flush reports at this indentation level or deeper.
......
{"Action":"run","Test":"TestActualCase"}
{"Action":"output","Test":"TestActualCase","Output":"=== RUN TestActualCase\n"}
{"Action":"output","Test":"TestActualCase","Output":"--- FAIL: TestActualCase (0.00s)\n"}
{"Action":"output","Test":"TestActualCase","Output":" foo_test.go:14: Differed.\n"}
{"Action":"output","Test":"TestActualCase","Output":" Expected: MyTest:\n"}
{"Action":"output","Test":"TestActualCase","Output":" --- FAIL: Test output from other tool\n"}
{"Action":"output","Test":"TestActualCase","Output":" Actual: not expected\n"}
{"Action":"fail","Test":"TestActualCase"}
{"Action":"output","Output":"FAIL\n"}
{"Action":"output","Output":"exit status 1\n"}
{"Action":"output","Output":"FAIL github.com/org/project/badtest 0.049s\n"}
{"Action":"fail"}
=== RUN TestActualCase
--- FAIL: TestActualCase (0.00s)
foo_test.go:14: Differed.
Expected: MyTest:
--- FAIL: Test output from other tool
Actual: not expected
FAIL
exit status 1
FAIL github.com/org/project/badtest 0.049s
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment