X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=tests%2Fprint.impure.lisp;h=d1ccc0169e7b49cd0e78820b59d99d2e7d8f2008;hb=6b8baeece6cf870e3f979a9f09c32985c64c04de;hp=608ce7fc36edb9cb04a985f8ac1e0a7d1eddfbaf;hpb=27844b49d7305379390dfbd78f114c46dcf74707;p=sbcl.git diff --git a/tests/print.impure.lisp b/tests/print.impure.lisp index 608ce7f..d1ccc01 100644 --- a/tests/print.impure.lisp +++ b/tests/print.impure.lisp @@ -427,4 +427,23 @@ (assert (equal x x2)) (assert (eq h2 (gethash x2 h2))))) +;;; an off-by-one error in the ~R format directive until 1.0.15.20 +;;; prevented printing cardinals and ordinals between (expt 10 63) and +;;; (1- (expt 10 66)) +(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