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