+SetTestDeadlockProtection_WithStackDump helper

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

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

@ -3,6 +3,7 @@ package godog_and_gomega
import ( import (
"errors" "errors"
"fmt" "fmt"
"runtime"
"strconv" "strconv"
"time" "time"
@ -60,3 +61,17 @@ func checkTestTimeout(t time.Duration) {
<-time.After(t) <-time.After(t)
panic("Test Suite Timeout") 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])
}