projects
/
fiveam.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Export results-status
[fiveam.git]
/
src
/
test.lisp
diff --git
a/src/test.lisp
b/src/test.lisp
index
af7225a
..
b6e85db
100644
(file)
--- a/
src/test.lisp
+++ b/
src/test.lisp
@@
-12,9
+12,14
@@
;;;; collection of tests and test suites.
(deflookup-table test
;;;; collection of tests and test suites.
(deflookup-table test
+ :at-redefinition nil
:documentation "Lookup table mapping test (and test suite)
names to objects.")
:documentation "Lookup table mapping test (and test suite)
names to objects.")
+(defun test-names ()
+ (loop for test being the hash-keys of *test*
+ collect test))
+
(defmacro test (name &body body)
"Create a test named NAME. If NAME is a list it must be of the
form:
(defmacro test (name &body body)
"Create a test named NAME. If NAME is a list it must be of the
form:
@@
-41,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*."
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)
(ensure-list name)
+ (declare (type (member :run-time :definition-time) compile-at))
(let (description)
(setf description (if (stringp (car body))
(pop body)
(let (description)
(setf description (if (stringp (car body))
(pop body)
@@
-50,9
+56,13
@@
SUITE defaults to the current value of *SUITE*."
`(progn
(setf (get-test ',name) (make-instance 'test-case
:name ',name
`(progn
(setf (get-test ',name) (make-instance 'test-case
:name ',name
+ :runtime-package ,*package*
:test-lambda
(lambda ()
:test-lambda
(lambda ()
- (funcall (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
:description ,description
:depends-on ',depends-on))
,(if suite-supplied-p