X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Finterface.impure.lisp;h=ac4776ab51bd2809c8dba6b11bbe1501ba65a7af;hb=86d50ba6266c823eedd444c4e1c5a55e9dc7f46a;hp=3be4ec40a8842e68bfbc2ae2308b79f95673e5d4;hpb=6dc30bee17d029acf6bb6da730f03e63b2a01948;p=sbcl.git diff --git a/tests/interface.impure.lisp b/tests/interface.impure.lisp index 3be4ec4..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,32 @@ (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) + ;; 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