ksql/internal/testtools/panic.go

19 lines
438 B
Go

package tt
// PanicHandler will run the input function and recover
// from any panics it might generate.
//
// It will then save the panic payload and return it
// so it can be asserted by other functions on the test.
func PanicHandler(fn func()) (panicPayload interface{}) {
defer func() {
// Overwrites the panic payload if a pannic actually occurs:
if r := recover(); r != nil {
panicPayload = r
}
}()
fn()
return nil
}