X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fprint.impure.lisp;h=81cb0f33cd72fcd7b94b1c01edd4dfd4e5d0295d;hb=9abfd1a2b22862570c15ffa5129b1196d0480290;hp=4f1b3f54431a4df7ffae81b038cb5b1d6c58df10;hpb=2a2e392928449850fb531af1191f83f61e736c97;p=sbcl.git diff --git a/tests/print.impure.lisp b/tests/print.impure.lisp index 4f1b3f5..81cb0f3 100644 --- a/tests/print.impure.lisp +++ b/tests/print.impure.lisp @@ -414,7 +414,8 @@ (assert (string= (format nil (formatter "~:C") #\a) "a")) ;;; This used to trigger an AVER instead. -(assert (raises-error? (format t "~>") sb-format:format-error)) +(assert (raises-error? (eval '(formatter "~>")) sb-format:format-error)) +(assert (raises-error? (eval '(format t "~>")) sb-format:format-error)) ;;; readably printing hash-tables, check for circularity (let ((x (cons 1 2)) @@ -433,4 +434,17 @@ (assert (string= (format nil "~R" (expt 10 63)) "one vigintillion")) (assert (string= (format nil "~:R" (expt 10 63)) "one vigintillionth")) +;;; too-clever cacheing for PRINT-OBJECT resulted in a bogus method +;;; for printing RESTART objects. Check also CONTROL-STACK-EXHAUSTED +;;; and HEAP-EXHAUSTED-ERROR. +(let ((result (with-output-to-string (*standard-output*) + (princ (find-restart 'abort))))) + (assert (string/= result "#<" :end1 2))) +(let ((result (with-output-to-string (*standard-output*) + (princ (make-condition 'sb-kernel::control-stack-exhausted))))) + (assert (string/= result "#<" :end1 2))) +(let ((result (with-output-to-string (*standard-output*) + (princ (make-condition 'sb-kernel::heap-exhausted-error))))) + (assert (string/= result "#<" :end1 2))) + ;;; success