From: Attila Lendvai <attila.lendvai@gmail.com>
Date: Wed, 20 Dec 2006 15:10:18 +0000 (+0100)
Subject: Added :compile-at parameter for test (:run-time :definition-time)
X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=7a016e70ee47507d22a59a3c7da1b1d3740d215e;p=fiveam.git

Added :compile-at parameter for test (:run-time :definition-time)
---

diff --git a/src/test.lisp b/src/test.lisp
index 99bc8bb..b6e85db 100644
--- a/src/test.lisp
+++ b/src/test.lisp
@@ -46,8 +46,9 @@ If DEPENDS-ON is a symbol it is interpreted as `(AND
 depending on another.
 
 SUITE defaults to the current value of *SUITE*."
-  (destructuring-bind (name &key depends-on (suite nil suite-supplied-p))
+  (destructuring-bind (name &key depends-on (suite nil suite-supplied-p) (compile-at :run-time))
       (ensure-list name)
+    (declare (type (member :run-time :definition-time) compile-at))
     (let (description)
       (setf description (if (stringp (car body))
 			    (pop body)
@@ -58,8 +59,10 @@ SUITE defaults to the current value of *SUITE*."
                                                 :runtime-package ,*package*
                                                 :test-lambda
                                                 (lambda ()
-                                                  (funcall (let ((*package* ,*package*))
-                                                             (compile nil '(lambda () ,@body)))))
+                                                  ,@(ecase compile-at
+                                                           (:run-time `((funcall (let ((*package* ,*package*))
+                                                                                          (compile nil '(lambda () ,@body))))))
+                                                           (:definition-time body)))
                                                 :description ,description
                                                 :depends-on ',depends-on))
 	 ,(if suite-supplied-p