X-Git-Url: http://git.kpe.io/?p=ptester.git;a=blobdiff_plain;f=tester.lisp;h=0c3222583edcf734de12bd1a0cd675b24878a891;hp=c66a044b099a6b950c5f0c7dfcb9752feb824468;hb=8cdb46dcf0b4771f764c196c9b51530e236cae9b;hpb=ef297c4486d9af631e1566fb7bfcc8fb1e16a722 diff --git a/tester.lisp b/tester.lisp index c66a044..0c32225 100644 --- a/tester.lisp +++ b/tester.lisp @@ -26,7 +26,7 @@ ;;;; from the original ACL 6.1 sources: ;; Id: tester.cl,v 2.2.12.1 2001/06/05 18:45:10 layer Exp -;; $Id: tester.lisp,v 1.1 2002/09/30 10:16:25 kevin Exp $ +;; $Id: tester.lisp,v 1.3 2003/07/18 19:47:07 kevin Exp $ (defpackage :util.test (:use :common-lisp) @@ -392,6 +392,14 @@ discriminate on new versus known failures." (defvar *announce-test* nil) ;; if true announce each test that was done +(defmacro errorset (form) ;subset of test-values-errorset + `(handler-case + (values-list (cons t (multiple-value-list ,form))) + (error (cond) + (format *error-output* "~&An error occurred: ~a~%" cond) + nil))) + + (defun test-check (&key (predicate #'eql) expected-result test-results test-form multiple-values fail-info known-failure @@ -407,12 +415,13 @@ discriminate on new versus known failures." (flet ((check (expected-result result) (let* ((results (multiple-value-list - (errorset (funcall predicate expected-result result) t))) + (errorset (funcall predicate expected-result result)))) (failed (null (car results)))) - (if* failed - then (setq predicate-failed t) - nil - else (cadr results))))) + (if failed + (progn + (setq predicate-failed t) + nil) + (cadr results))))) (when (conditionp test-results) (setq condition test-results) (setq test-results nil)) @@ -548,14 +557,14 @@ Reason: the format-arguments were incorrect.~%") (*test-unexpected-failures* 0)) (format *error-output* "Begin ~a test~%" ,g-name) (if* *break-on-test-failures* - then (doit) - else (handler-case (doit) - (error (c) - (format - *error-output* - "~ + then (doit) + else (handler-case (doit) + (error (c) + (format + *error-output* + "~ ~&Test ~a aborted by signalling an uncaught error:~%~a~%" - ,g-name c)))) + ,g-name c)))) #+allegro (let ((state (sys:gsgc-switch :print))) (setf (sys:gsgc-switch :print) nil) @@ -570,9 +579,9 @@ Reason: the format-arguments were incorrect.~%") (progn (format t "~&**********************************~%" ,g-name) (format t "End ~a test~%" ,g-name) - (format t "Errors detected in this test: ~s " *test-errors*) + (format t "Errors detected in this test: ~D " *test-errors*) (unless (zerop *test-unexpected-failures*) - (format t "UNEXPECTED: ~s" *test-unexpected-failures*)) - (format t "~%Successes this test:~s~%" *test-successes*)))))) + (format t "UNEXPECTED: ~D" *test-unexpected-failures*)) + (format t "~%Successes this test:~D~%" *test-successes*)))))) (provide :tester #+module-versions 1.1)