X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Finterface.impure.lisp;h=cbb9ae381e8950907681d7157b6acf1406c87416;hb=a51d83191034919bc76367268929e234d62164db;hp=785edcdeaca761df421268ccd6e86d7c4885b2f1;hpb=f181ad9ffeeadf341b6a16c3591eadf0c1e3fa61;p=sbcl.git diff --git a/tests/interface.impure.lisp b/tests/interface.impure.lisp index 785edcd..cbb9ae3 100644 --- a/tests/interface.impure.lisp +++ b/tests/interface.impure.lisp @@ -113,15 +113,17 @@ (let ((s (with-output-to-string (s) (write-char #\x s) (describe i s)))) - (unless (and (char= #\x (char s 0)) - ;; one leading #\NEWLINE from FRESH-LINE or the like, no more - (char= #\newline (char s 1)) - (char/= #\newline (char s 2)) - ;; one trailing #\NEWLINE from TERPRI or the like, no more - (let ((n (length s))) - (and (char= #\newline (char s (- n 1))) - (char/= #\newline (char s (- n 2)))))) - (error "misbehavior in DESCRIBE of ~S" i)))) + (macrolet ((check (form) + `(or ,form + (error "misbehavior in DESCRIBE of ~S:~% ~S" i ',form)))) + (check (char= #\x (char s 0))) + ;; one leading #\NEWLINE from FRESH-LINE or the like, no more + (check (char= #\newline (char s 1))) + (check (char/= #\newline (char s 2))) + ;; one trailing #\NEWLINE from TERPRI or the like, no more + (let ((n (length s))) + (check (char= #\newline (char s (- n 1)))) + (check (char/= #\newline (char s (- n 2)))))))) ;;; Tests of documentation on types and classes @@ -230,6 +232,34 @@ (assert (string= (documentation #'docfoo t) "bar")) (assert (string= (setf (documentation 'docfoo 'function) "baz") "baz")) (assert (string= (documentation 'docfoo 'function) "baz")) - (assert (string= (documentation #'docfoo t) "baz"))) + (assert (string= (documentation #'docfoo t) "bar")) + (assert (string= (setf (documentation #'docfoo t) "zot") "zot")) + (assert (string= (documentation #'docfoo t) "zot")) + (assert (string= (documentation 'docfoo 'function) "baz")) + (assert (not (setf (documentation 'docfoo 'function) nil))) + (assert (string= (documentation 'docfoo 'function) "zot"))) + +#+sb-doc +(with-test (:name (documentation built-in-macro)) + (assert (documentation 'trace 'function))) + +#+sb-doc +(with-test (:name (documentation built-in-function)) + (assert (documentation 'cons 'function))) + +(with-test (:name :describe-generic-function-with-assumed-type) + ;; Signalled an error at one point + (flet ((zoo () (gogo))) + (defmethod gogo () nil) + (describe 'gogo))) + +(defmacro bug-643958-test () + "foo" + :ding!) + +(with-test (:name :bug-643958) + (assert (equal "foo" (documentation 'bug-643958-test 'function))) + (setf (documentation 'bug-643958-test 'function) "bar") + (assert (equal "bar" (documentation 'bug-643958-test 'function)))) ;;;; success