Create named test lambdas
authorStelian Ionescu <sionescu@cddr.org>
Sun, 29 Jul 2012 15:38:51 +0000 (17:38 +0200)
committerStelian Ionescu <sionescu@cddr.org>
Sun, 29 Jul 2012 15:38:51 +0000 (17:38 +0200)
LP #1024772

src/test.lisp

index a8269c6..2712d6a 100644 (file)
@@ -74,19 +74,23 @@ If PROFILE is T profiling information will be collected as well."
                                 (destructuring-bind (name &rest args)
                                     (ensure-list fixture)
                                   `((with-fixture ,name ,args ,@body)))
-                                body)))
+                                body))
+            (lambda-name
+              (format-symbol t "%~A-~A" '#:test name))
+            (inner-lambda-name
+              (format-symbol t "%~A-~A" '#:inner-test name)))
         `(progn
            (setf (get-test ',name)
                  (make-instance 'test-case
                                 :name ',name
                                 :runtime-package (find-package ,(package-name *package*))
                                 :test-lambda
-                                (lambda ()
+                                (named-lambda ,lambda-name ()
                                   ,@ (ecase compile-at
                                        (:run-time `((funcall
                                                      (let ((*package* (find-package ',(package-name *package*))))
-                                                       (compile nil '(lambda ()
-                                                                      ,@effective-body))))))
+                                                       (compile ',inner-lambda-name
+                                                                '(lambda () ,@effective-body))))))
                                        (:definition-time effective-body)))
                                 :description ,description
                                 :depends-on ',depends-on