+SetTestDeadlockProtection_WithStackDump helper

Этот коммит содержится в:
Softonik 2025-09-23 20:06:34 +03:00
родитель a061cf91d1
коммит 6b1ff27907

Просмотреть файл

@ -3,6 +3,7 @@ package godog_and_gomega
import (
"errors"
"fmt"
"runtime"
"strconv"
"time"
@ -60,3 +61,17 @@ func checkTestTimeout(t time.Duration) {
<-time.After(t)
panic("Test Suite Timeout")
}
func SetTestDeadlockProtection_WithStackDump(seconds int) {
go checkTestTimeout_WithStackDump(time.Duration(seconds) * time.Second)
}
func checkTestTimeout_WithStackDump(t time.Duration) {
<-time.After(t)
PrintGoroutineStacks()
panic("Test Suite Timeout")
}
func PrintGoroutineStacks() {
buf := make([]byte, 1<<16)
stackSize := runtime.Stack(buf, true)
fmt.Printf("Goroutine stack trace:\n%s\n", buf[:stackSize])
}