X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Finterface.impure.lisp;h=31cb5171528a5ac599b66cd6dcd2824a031e4da0;hb=32d3b398d33736e61b51a14afca8c14decec4437;hp=ac4776ab51bd2809c8dba6b11bbe1501ba65a7af;hpb=c5e9ad7d244be10589cf079e36422ffe005d0e67;p=sbcl.git diff --git a/tests/interface.impure.lisp b/tests/interface.impure.lisp index ac4776a..31cb517 100644 --- a/tests/interface.impure.lisp +++ b/tests/interface.impure.lisp @@ -264,5 +264,38 @@ (assert (equal "foo" (documentation 'bug-643958-test 'function))) (setf (documentation 'bug-643958-test 'function) "bar") (assert (equal "bar" (documentation 'bug-643958-test 'function)))) + +(defclass cannot-print-this () + ()) +(defmethod print-object ((oops cannot-print-this) stream) + (error "No go!")) +(with-test (:name :describe-suppresses-print-errors) + (handler-bind ((error #'continue)) + (with-output-to-string (s) + (describe (make-instance 'cannot-print-this) s)))) +(with-test (:name :backtrace-suppresses-print-errors) + (handler-bind ((error #'continue)) + (with-output-to-string (s) + (labels ((foo (n x) + (when (plusp n) + (foo (1- n) x)) + (when (zerop n) + (sb-debug:backtrace 100 s)))) + (foo 100 (make-instance 'cannot-print-this)))))) +(with-test (:name :backtrace-and-circles) + (handler-bind ((error #'continue)) + (with-output-to-string (s) + (labels ((foo (n x) + (when (plusp n) + (foo (1- n) x)) + (when (zerop n) + (sb-debug:backtrace 100 s)))) + (foo 100 (let ((list (list t))) + (nconc list list))))))) + +(with-test (:name :endianness-in-features) + (assert + (or (member :big-endian *features*) + (member :little-endian *features*)))) ;;;; success