From: Marco Baringer Date: Tue, 24 Jan 2006 11:38:10 +0000 (+0100) Subject: TEST macro now recompiles the body on every run. X-Git-Url: http://repo.macrolet.net/gitweb/?p=fiveam.git;a=commitdiff_plain;h=ea24d851569099877c8aa18899c2744b5070d7e3 TEST macro now recompiles the body on every run. This idea, blatenly stolen from LispUnit, ensures that tests will always use the latest macro definitions. --- diff --git a/src/test.lisp b/src/test.lisp index 2e3020a..7d763d1 100644 --- a/src/test.lisp +++ b/src/test.lisp @@ -43,18 +43,18 @@ depending on another. SUITE defaults to the current value of *SUITE*." (destructuring-bind (name &key depends-on (suite nil suite-supplied-p)) (ensure-list name) - (let (lambda description) + (let (description) (setf description (if (stringp (car body)) (pop body) - "") - lambda body) + "")) `(progn - (setf (get-test ',name) - (make-instance 'test-case - :name ',name - :test-lambda (lambda () ,@lambda) - :description ,description - :depends-on ',depends-on)) + (setf (get-test ',name) (make-instance 'test-case + :name ',name + :test-lambda + (lambda () + (funcall (compile nil '(lambda () ,@body)))) + :description ,description + :depends-on ',depends-on)) ,(if suite-supplied-p `(setf (gethash ',name (tests (get-test ',suite))) ',name)