X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Finterface.impure.lisp;h=ac4776ab51bd2809c8dba6b11bbe1501ba65a7af;hb=171fde84561e232b8af8c05b82dfe8a8f9e08340;hp=6f697a50b1e7e4f1f48654c7284f131d0aef8e9a;hpb=c09f6c37a4b36901793d5a9ac7e99b5eeea83593;p=sbcl.git diff --git a/tests/interface.impure.lisp b/tests/interface.impure.lisp index 6f697a5..ac4776a 100644 --- a/tests/interface.impure.lisp +++ b/tests/interface.impure.lisp @@ -83,15 +83,20 @@ ;;; support for DESCRIBE tests (defstruct to-be-described a b) (defclass forward-describe-class (forward-describe-ref) (a)) +(let ((sb-ext:*evaluator-mode* :compile)) + (eval `(let (x) (defun closure-to-describe () (incf x))))) ;;; DESCRIBE should run without signalling an error. -(describe (make-to-be-described)) -(describe 12) -(describe "a string") -(describe 'symbolism) -(describe (find-package :cl)) -(describe '(a list)) -(describe #(a vector)) +(with-test (:name (describe :no-error)) + (describe (make-to-be-described)) + (describe 12) + (describe "a string") + (describe 'symbolism) + (describe (find-package :cl)) + (describe '(a list)) + (describe #(a vector)) +;; bug 824974 + (describe 'closure-to-describe)) ;;; The DESCRIBE-OBJECT methods for built-in CL stuff should do ;;; FRESH-LINE and TERPRI neatly. @@ -232,14 +237,17 @@ (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)) +(with-test (:name (documentation built-in-macro) :skipped-on '(not :sb-doc)) (assert (documentation 'trace 'function))) -#+sb-doc -(with-test (:name (documentation built-in-function)) +(with-test (:name (documentation built-in-function) :skipped-on '(not :sb-doc)) (assert (documentation 'cons 'function))) (with-test (:name :describe-generic-function-with-assumed-type) @@ -247,5 +255,14 @@ (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