Store the test based on the SYMBOL-PACKAGE of the test name, not *PACKAGE*.
authorThomas M. Hermann <thomas.m.hermann@odonata-research.com>
Sat, 24 Aug 2013 13:35:29 +0000 (24 08:35 -0500)
committerThomas M. Hermann <thomas.m.hermann@odonata-research.com>
Sat, 24 Aug 2013 13:35:29 +0000 (24 08:35 -0500)
internal-test/example-tests.lisp
lisp-unit.lisp

index 6312be0..8aaf9a6 100644 (file)
   (dotimes (i 5)
     (assert-equal i (my-sqrt (* i i)) i)))
 
+(define-test cl-user::my-sqrt
+  (dotimes (i 5)
+    (assert-equal i (my-sqrt (* i i)) i)))
+
 ;;; Macro
 
 (defmacro my-macro (arg1 arg2)
index 85c0fa8..fbecfcd 100644 (file)
@@ -265,15 +265,16 @@ assertion.")
   (let ((qname (gensym "NAME-")))
     (multiple-value-bind (doc tag code) (parse-body body)
       `(let* ((,qname (valid-test-name ',name))
-              (doc (or ,doc (string ,qname))))
+              (doc (or ,doc (symbol-name ,qname)))
+              (package (symbol-package ,qname)))
          (setf
           ;; Unit test
-          (gethash ,qname (package-table *package* t))
+          (gethash ,qname (package-table package t))
           (make-instance 'unit-test :doc doc :code ',code))
          ;; Tags
-         (loop for tag in ',tag do
-               (pushnew
-                ,qname (gethash tag (package-tags *package* t))))
+         (loop
+          for tag in ',tag do
+          (pushnew ,qname (gethash tag (package-tags package t))))
          ;; Return the name of the test
          ,qname))))