# For issue 41355
[short] skip

# This test could fail if the testing package does not wait until
# a panicking test does the panic. Turn off multithreading, GC, and
# async preemption to increase the probability of such a failure.
env GOMAXPROCS=1
env GOGC=off
env GODEBUG=asyncpreempt=off

# If the test exits with 'no tests to run', it means the testing package
# implementation is incorrect and does not wait until a test panic.
# If the test exits with '(?s)panic: die.*panic: die', it means
# the testing package did an extra panic for a panicking test.

! go test -v cleanup_failnow/panic_nocleanup_test.go
! stdout 'no tests to run'
stdout '(?s)panic: die \[recovered\].*panic: die'
! stdout '(?s)panic: die \[recovered\].*panic: die.*panic: die'

! go test -v cleanup_failnow/panic_withcleanup_test.go
! stdout 'no tests to run'
stdout '(?s)panic: die \[recovered\].*panic: die'
! stdout '(?s)panic: die \[recovered\].*panic: die.*panic: die'

-- cleanup_failnow/panic_nocleanup_test.go --
package panic_nocleanup_test
import "testing"
func TestX(t *testing.T) {
	t.Run("x", func(t *testing.T) {
		panic("die")
	})
}

-- cleanup_failnow/panic_withcleanup_test.go --
package panic_withcleanup_test
import "testing"
func TestCleanupWithFailNow(t *testing.T) {
	t.Cleanup(func() {
		t.FailNow()
	})
	t.Run("x", func(t *testing.T) {
		t.Run("y", func(t *testing.T) {
			panic("die")
		})
	})
}