fixed unhandled panic and wrapped all internal goroutines

This commit is contained in:
Gani Georgiev
2026-07-15 12:03:07 +03:00
parent 09044ef7a3
commit f1618ee59b
13 changed files with 85 additions and 37 deletions
+26 -2
View File
@@ -1,6 +1,7 @@
package routine_test
import (
"strings"
"sync"
"testing"
@@ -12,7 +13,7 @@ func TestFireAndForget(t *testing.T) {
fn := func() {
called = true
panic("test")
panic("test_recover")
}
wg := &sync.WaitGroup{}
@@ -22,6 +23,29 @@ func TestFireAndForget(t *testing.T) {
wg.Wait()
if !called {
t.Error("Expected fn to be called.")
t.Fatal("Expected fn to be called.")
}
}
func TestSafeWrap(t *testing.T) {
called := false
fn := func() error {
called = true
panic("test_recover")
}
err := routine.SafeWrap(fn)()
if !called {
t.Fatal("Expected fn to be called.")
}
if err == nil {
t.Fatal("Expected fn panic to be converted to error")
}
if !strings.Contains(err.Error(), "test_recover") {
t.Fatal("Expected the returned error to contain the recovered panic value")
}
}