diff --git a/ansi-tests/ansi-aux.lsp b/ansi-tests/ansi-aux.lsp index e7fc50071ddca43673ace457061a993de9349285..d5d7eb1cc2c0af0cfc3994c3fd5de019f7c2af14 100644 --- a/ansi-tests/ansi-aux.lsp +++ b/ansi-tests/ansi-aux.lsp @@ -272,7 +272,7 @@ the condition to go uncaught if it cannot be classified." ;;; The above is badly designed, since it fails when some signals ;;; may be in more than one class/ -(defmacro signals-error (form error-name &key (safety 3)) +(defmacro signals-error (form error-name &key (safety 3) name) `(handler-bind ((warning #'(lambda (c) (declare (ignore c)) (muffle-warning)))) @@ -293,10 +293,19 @@ the condition to go uncaught if it cannot be classified." (type-error-expected-type c)) (values nil - (list (list 'typep (type-error-datum c) - (type-error-expected-type c)) + (list (list 'typep (list 'quote + (type-error-datum c)) + (list 'quote + (type-error-expected-type c))) "==> true")))) nil) + ,@(if (eq error-name 'undefined-function) + `(((not (eq (cell-error-name c) ',name)) + (values + nil + (list 'cell-error-name "==>" + (cell-error-name c))))) + nil) (t (printable-p c))))))) (defmacro signals-error-always (form error-name)