X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=tests%2Fpprint.impure.lisp;h=29a3e93cf993716a5addab3a3a550ba51233899f;hb=2db542f484283726e64dd4606e7a0f74b9b228ee;hp=9c6fceef989b2997094fc9057d778b0ebd5a7447;hpb=4898ef32c639b1c7f4ee13a5ba566ce6debd03e6;p=sbcl.git diff --git a/tests/pprint.impure.lisp b/tests/pprint.impure.lisp index 9c6fcee..29a3e93 100644 --- a/tests/pprint.impure.lisp +++ b/tests/pprint.impure.lisp @@ -200,6 +200,30 @@ (assert (string= "#1=(#2=(#2# . #3=(#1# . #3#)))" (with-output-to-string (s) (write '#1=(#2=(#2# . #3=(#1# . #3#))) :stream s))))) + +;;; Printing malformed defpackage forms without errors. +(with-test (:name :pprint-defpackage) + (with-open-stream (null (make-broadcast-stream)) + (pprint '(defpackage :foo nil)) + (pprint '(defpackage :foo 42)))) + +(with-test (:name :standard-pprint-dispatch-modified) + (assert + (eq :error + (handler-case (with-standard-io-syntax + (set-pprint-dispatch 'symbol (constantly nil)) + :no-error) + (sb-int:standard-pprint-dispatch-table-modified-error () + :error))))) + +(with-test (:name :pprint-defmethod-lambda-list-function) + (flet ((to-string (form) + (let ((string (with-output-to-string (s) (pprint form s)))) + (assert (eql #\newline (char string 0))) + (subseq string 1)))) + (assert (equal "(DEFMETHOD FOO ((FUNCTION CONS)) FUNCTION)" + (to-string `(defmethod foo ((function cons)) function)))) + (assert (equal "(DEFMETHOD FOO :AFTER (FUNCTION CONS) FUNCTION)" + (to-string `(defmethod foo :after (function cons) function)))))) ;;; success -(quit :unix-status 104)