mirror of https://github.com/golang/go.git
Flush the output log up to the root when a test panics. Prior to
this change, only the current test's output log was flushed to its
parent, resulting in no output when a subtest panics.
For the following test function:
func Test(t *testing.T) {
for i, test := range []int{1, 0, 2} {
t.Run(fmt.Sprintf("%v/%v", i, test), func(t *testing.T) {
_ = 1 / test
})
}
}
Output before this change:
panic: runtime error: integer divide by zero [recovered]
panic: runtime error: integer divide by zero
(stack trace follows)
Output after this change:
--- FAIL: Test (0.00s)
--- FAIL: Test/1/0 (0.00s)
panic: runtime error: integer divide by zero [recovered]
(stack trace follows)
Fixes #32121
Change-Id: Ifee07ccc005f0493a902190a8be734943123b6b7
Reviewed-on: https://go-review.googlesource.com/c/go/+/179599
Run-TryBot: Damien Neil <dneil@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
|
||
|---|---|---|
| .. | ||
| internal/testdeps | ||
| iotest | ||
| quick | ||
| allocs.go | ||
| allocs_test.go | ||
| benchmark.go | ||
| benchmark_test.go | ||
| cover.go | ||
| example.go | ||
| export_test.go | ||
| helper_test.go | ||
| helperfuncs_test.go | ||
| match.go | ||
| match_test.go | ||
| panic_test.go | ||
| run_example.go | ||
| run_example_js.go | ||
| sub_test.go | ||
| testing.go | ||
| testing_test.go | ||