1.0.17.33: fix PRINT-OBJECT cache
[sbcl.git] / tests / print.impure.lisp
index 4f1b3f5..d1ccc01 100644 (file)
 (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