diff options
Diffstat (limited to 'xdelta3')
-rw-r--r-- | xdelta3/go/src/xdelta/run.go | 19 |
1 files 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() { | |||
52 | 52 | ||
53 | func (r *Runner) RunTest(name string, f func (t *TestGroup)) { | 53 | func (r *Runner) RunTest(name string, f func (t *TestGroup)) { |
54 | t := r.newTestGroup(name) | 54 | t := r.newTestGroup(name) |
55 | var rec interface{} | 55 | c := make(chan interface{}) |
56 | defer func() { | 56 | go func() { |
57 | if r := recover(); r != nil { | 57 | defer func() { |
58 | fmt.Println("PANIC in ", name, ": ", r) | 58 | c <- recover() |
59 | rec = r | 59 | }() |
60 | } else { | 60 | fmt.Println("Testing", name, "...") |
61 | // Goexit | 61 | f(t) |
62 | } | 62 | c <- nil |
63 | }() | 63 | }() |
64 | fmt.Println("Testing", name, "...") | 64 | rec := <- c |
65 | f(t) | ||
66 | if t.errors == nil && rec == nil { | 65 | if t.errors == nil && rec == nil { |
67 | fmt.Println("Success:", name) | 66 | fmt.Println("Success:", name) |
68 | } else { | 67 | } else { |