fix :DEBUGGER :SOURCE 2 test on unithreaded builds
[sbcl.git] / tests / test-util.lisp
index 2e278ae..8381019 100644 (file)
     (setf *test-count* 0))
   (incf *test-count*))
 
+(defun really-invoke-debugger (condition)
+  (with-simple-restart (continue "Continue")
+    (let ((*invoke-debugger-hook* *invoke-debugger-hook*))
+      (enable-debugger)
+      (invoke-debugger condition))))
+
 (defun fail-test (type test-name condition)
-  (log-msg "~@<~A ~S ~:_due to ~S: ~4I~:_\"~A\"~:>"
-           type test-name condition condition)
+  (if (stringp condition)
+      (log-msg "~@<~A ~S ~:_~A~:>"
+               type test-name condition)
+      (log-msg "~@<~A ~S ~:_due to ~S: ~4I~:_\"~A\"~:>"
+               type test-name condition condition))
   (push (list type *test-file* (or test-name *test-count*))
         *failures*)
-  (when (or (and *break-on-failure*
-                 (not (eq type :expected-failure)))
-            *break-on-expected-failure*)
-    (really-invoke-debugger condition)))
+  (unless (stringp condition)
+    (when (or (and *break-on-failure*
+                   (not (eq type :expected-failure)))
+              *break-on-expected-failure*)
+      (really-invoke-debugger condition))))
 
 (defun expected-failure-p (fails-on)
   (sb-impl::featurep fails-on))
 (defun skipped-p (skipped-on)
   (sb-impl::featurep skipped-on))
 
-(defun really-invoke-debugger (condition)
-  (with-simple-restart (continue "Continue")
-    (let ((*invoke-debugger-hook* *invoke-debugger-hook*))
-      (enable-debugger)
-      (invoke-debugger condition))))
-
 (defun test-env ()
   (cons (format nil "SBCL_MACHINE_TYPE=~A" (machine-type))
         (cons (format nil "SBCL_SOFTWARE_TYPE=~A" (software-type))