     }
     runCase(startCase-1, caseCount: count){ (error) in
         if error == nil{
+            updateReports(true){
+               exit(0)
+            }
         } else {
-            printFailure(error)
-            exit(1)
-        }
-        updateReports(true){
-            exit(0)
+            updateReports(true){
+               exit(1)
+            }
         }
     }
 }

                        runCase(caseIdx+1, caseCount: caseCount, block: block)
                    }
                }
                if keepStatsUpdated {
                    updateReports(false, block: f)
                } else {
                    f()

            exit(1)
        }

        var next = { ()->() in }


        print("[CASE] #\(caseIdx+1)/\(caseCount): \(id): \(description)")
        let failed : (message : String)->() = { (message) in
            let error = makeError(message)
            printFailure(error)
            if stopOnFailure {
                block(error: error)    
            } else {
                next()
            }
        }
        let warn : (message : String)->() = { (message) in
            printFailure(makeError(message))
        }
        next = { ()->() in
//            if showDuration {
//                let now = NSDate().timeIntervalSince1970
//                let recv = evstart == 0 ? 0 : (evstart - start) * 1000
