From 2446f55fef1d9a0dcb9283a34bb540689dda7e62 Mon Sep 17 00:00:00 2001 From: Josh MacDonald Date: Sat, 26 Dec 2015 21:47:22 -0800 Subject: Support Panic in the main routine --- xdelta3/go/src/xdelta/run.go | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/xdelta3/go/src/xdelta/run.go b/xdelta3/go/src/xdelta/run.go index 3b07178..6523a1c 100644 --- a/xdelta3/go/src/xdelta/run.go +++ b/xdelta3/go/src/xdelta/run.go @@ -52,17 +52,16 @@ func (r *Runner) Cleanup() { func (r *Runner) RunTest(name string, f func (t *TestGroup)) { t := r.newTestGroup(name) - var rec interface{} - defer func() { - if r := recover(); r != nil { - fmt.Println("PANIC in ", name, ": ", r) - rec = r - } else { - // Goexit - } + c := make(chan interface{}) + go func() { + defer func() { + c <- recover() + }() + fmt.Println("Testing", name, "...") + f(t) + c <- nil }() - fmt.Println("Testing", name, "...") - f(t) + rec := <- c if t.errors == nil && rec == nil { fmt.Println("Success:", name) } else { -- cgit v1.2.3