From 7d67f76cc882f65af966215b2b682b113a4a9f72 Mon Sep 17 00:00:00 2001
From: Francois-Rene Rideau <tunes@google.com>
Date: Thu, 10 Jan 2013 15:20:23 -0500
Subject: [PATCH] Redirect all streams to one during testing. Avoids
 interspersed error output in CCL, or backtrace to terminal in SBCL.

---
 test/script-support.lisp | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/test/script-support.lisp b/test/script-support.lisp
index f24f9e6ed..f18f441ef 100644
--- a/test/script-support.lisp
+++ b/test/script-support.lisp
@@ -130,13 +130,22 @@
   (ext:quit :status return)
   (error "Don't know how to quit Lisp; wanting to use exit code ~a" return))
 
+(defun finish-outputs ()
+  (loop :for s :in (list *standard-output* *error-output* *trace-output* *debug-io*)
+        :do (finish-output s)))
+
+(defun redirect-outputs ()
+  (finish-outputs)
+  (setf *error-output* *standard-output*
+        *trace-output* *standard-output*))
+
 (defun leave-lisp (message return)
+  (finish-outputs)
   (fresh-line *error-output*)
   (when message
     (format *error-output* message)
     (terpri *error-output*))
-  (finish-output *error-output*)
-  (finish-output *standard-output*)
+  (finish-outputs)
   (exit-lisp return))
 
 (defmacro assert-equal (x y)
@@ -150,6 +159,7 @@
   "Unless the environment variable DEBUG_ASDF_TEST
 is bound, write a message and exit on an error.  If
 *asdf-test-debug* is true, enter the debugger."
+  (redirect-outputs)
   (handler-bind
       ((error (lambda (c)
                 (format *error-output* "~&~a~&" c)
-- 
GitLab