• Damien Neil's avatar
    testing: provide additional information when test funcs panic · 81a74b4e
    Damien Neil authored
    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: default avatarIan Lance Taylor <iant@golang.org>
    81a74b4e
testing.go 44.6 KB