From 6b1ff2790785dca71714b736c20ea6db86800f40 Mon Sep 17 00:00:00 2001 From: Softonik Date: Tue, 23 Sep 2025 20:06:34 +0300 Subject: [PATCH] +SetTestDeadlockProtection_WithStackDump helper --- godog_and_gomega_helpers.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/godog_and_gomega_helpers.go b/godog_and_gomega_helpers.go index 8ba2019..f4da1d4 100644 --- a/godog_and_gomega_helpers.go +++ b/godog_and_gomega_helpers.go @@ -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]) +}