X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fpprint.impure.lisp;h=038af4d8f10e53624cfeec2a67de208a686b28f2;hb=9f1903c072936fb15f03f93182c57beb4621b39d;hp=738f9f37470c292b2293dcfb0b70dd40e45ade6d;hpb=425ce8cf75122dfb7242ffbf5d726e12fae24e58;p=sbcl.git diff --git a/tests/pprint.impure.lisp b/tests/pprint.impure.lisp index 738f9f3..038af4d 100644 --- a/tests/pprint.impure.lisp +++ b/tests/pprint.impure.lisp @@ -248,5 +248,35 @@ (*print-pretty* t)) (format nil "~@<~S~:>" (make-instance 'frob)))))) +(with-test (:name :pprint-logical-block-code-deletion-node) + (handler-case + (compile nil + `(lambda (words &key a b c) + (pprint-logical-block (nil words :per-line-prefix (or a b c)) + (pprint-fill *standard-output* (sort (copy-seq words) #'string<) nil)))) + ((or sb-ext:compiler-note warning) (c) + (error e)))) + +(with-test (:name :pprint-logical-block-multiple-per-line-prefix-eval) + (funcall (compile nil + `(lambda () + (let ((n 0)) + (with-output-to-string (s) + (pprint-logical-block (s nil :per-line-prefix (if (eql 1 (incf n)) + "; " + (error "oops"))) + (pprint-newline :mandatory s) + (pprint-newline :mandatory s))) + n))))) + +(with-test (:name :can-restore-orig-pprint-dispatch-table) + (let* ((orig (pprint-dispatch 'some-symbol)) + (alt (lambda (&rest args) (apply orig args)))) + (set-pprint-dispatch 'symbol alt) + (assert (eq alt (pprint-dispatch 'some-symbol))) + (setf *print-pprint-dispatch* (copy-pprint-dispatch nil)) + (assert (eq orig (pprint-dispatch 'some-symbol))) + (assert (not (eq alt orig))))) + ;;; success