circuitbreaker/timeout_test.go

28 lines
391 B
Go
Raw Normal View History

2022-10-13 14:06:50 +02:00
package main
import (
"os"
"runtime/pprof"
"time"
)
const testTimeout = 5 * time.Second
// Timeout implements a test level timeout.
func Timeout() func() {
done := make(chan struct{})
go func() {
select {
case <-time.After(testTimeout):
_ = pprof.Lookup("goroutine").WriteTo(os.Stdout, 1)
panic("test timeout")
case <-done:
}
}()
return func() {
close(done)
}
}