diff --git a/ansi-tests/pprint-exit-if-list-exhausted.lsp b/ansi-tests/pprint-exit-if-list-exhausted.lsp index 6f6261a5826247a0b9b7c1a9025a0e2fc405ea19..361c57519af449c95a4db3d5694ed7e3c1f2e60c 100644 --- a/ansi-tests/pprint-exit-if-list-exhausted.lsp +++ b/ansi-tests/pprint-exit-if-list-exhausted.lsp @@ -268,6 +268,39 @@ "[[1 . #1=(2 . #1#)]]" "[[1 . #1=(2 . #1#)]]") +;;; pprint-pop when pprint-logical-block is given NIL + +(deftest pprint-pop.9 + (flet ((%f (len) + (with-standard-io-syntax + (let ((*print-pretty* t) + (*print-escape* nil) + (*print-right-margin* 100) + (*print-readably* nil) + (*print-length* len)) + (with-output-to-string + (os) + (pprint-logical-block + (os nil :prefix "{" :suffix "}") + (let ((vals (multiple-value-list (pprint-pop)))) + (assert (equal vals '(nil)) () "First call returned ~A" vals)) + (write 1 :stream os) + (write #\Space :stream os) + (let ((vals (multiple-value-list (pprint-pop)))) + (assert (equal vals '(nil)) () "Second call returned ~A" vals)) + (write 2 :stream os) + (write #\Space :stream os) + (let ((vals (multiple-value-list (pprint-pop)))) + (assert (equal vals '(nil)) () "Third call returned ~A" vals)) + (write 3 :stream os) + )))))) + (values (%f nil) (%f 0) (%f 1) (%f 2) (%f 3) (%f 4))) + "{1 2 3}" + "{...}" + "{1 ...}" + "{1 2 ...}" + "{1 2 3}" + "{1 2 3}") ;;; Error cases