+SetTestDeadlockProtection_WithStackDump helper
Этот коммит содержится в:
родитель
a061cf91d1
коммит
6b1ff27907
1 изменённых файлов: 15 добавлений и 0 удалений
|
|
@ -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])
|
||||||
|
}
|
||||||
|
|
|
||||||
Загрузка…
Создание таблицы
Сослаться в новой задаче