- (unwind-protect
- (bind-run-state ((result-list '()))
- (unwind-protect
- (loop for test being the hash-values of (tests suite)
- do (%run test))
- (setf suite-results result-list))
- (setf (status suite)
- (every (lambda (res)
- (typep res 'test-passed))
- suite-results)))
- (with-run-state (result-list)
- (setf result-list (nconc result-list suite-results))))))
+ (flet ((run-tests ()
+ (loop
+ for test being the hash-values of (tests suite)
+ do (%run test))))
+ (unwind-protect
+ (bind-run-state ((result-list '()))
+ (unwind-protect
+ (if (collect-profiling-info suite)
+ ;; Timing info doesn't get collected ATM, we need a portable library
+ ;; (setf (profiling-info suite) (collect-timing #'run-tests))
+ (run-tests)
+ (run-tests)))
+ (setf suite-results result-list
+ (status suite) (every #'test-passed-p suite-results)))
+ (with-run-state (result-list)
+ (setf result-list (nconc result-list suite-results)))))))