Files
tinygo/testdata/recover.txt
Jake Bailey 16eefc59eb runtime, testing: support Goexit, SkipNow, FailNow
Keep a pending Goexit separate from the active panic state so recovered
deferred panics do not cancel the original Goexit unwind. Goexit should
also ignore -panic=trap, since it is not a panic.

Wire testing.FailNow and SkipNow through runtime.Goexit, and run tests
and benchmarks in goroutines. This lets Goexit terminate the user
function without skipping test bookkeeping. Add Goexit/recover coverage
and enable crypto/ecdh in the Linux stdlib test list.
2026-07-11 11:53:33 +02:00

61 lines
1.2 KiB
Plaintext

# simple recover
running panic...
recovering...
recovered: panic
# recover with result
running panic...
recovered: panic
result: 3
# nested defer frame
deferred nested function
recovered: panic
# nested panic: panic inside recover
recovered 1: panic
recovered 2: foo
# panic inside defer
recovered: panic
# panic replace
panic 1
panic 2
recovered: panic 2
# defer panic
defer panic
recovered from deferred call: deferred panic
# indirect recover
indirect recover returned: indirect panic
# runtime.Goexit
Goexit deferred function, recover is nil: true
Goexit recovered deferred panic: panic during Goexit
Goexit nested recovered deferred panic: nested panic during Goexit
Goexit loop recovered deferred panic: loop panic during Goexit
Goexit loop defer
Goexit loop defer
# repanic
inner, repanicking
outer recovered: repanic value
# recover runtime errors
recovered: index
recovered: index from helper
recovered: slice
recovered: type assert
recovered: empty interface type assert
# recover from nil map and closed channel
recovered: nil map
recovered: closed chan
recovered: close nil chan
# recover from hardware signals
recovered: divide by zero
recovered: nil pointer dereference