-(defun make-suite (name &key description in)
- "Create a new test suite object."
- (let ((suite (make-instance 'test-suite :name name)))
+(defmacro def-suite* (name &rest def-suite-args)
+ `(progn
+ (def-suite ,name ,@def-suite-args)
+ (in-suite ,name)))
+
+(defun remove-from-suites (test-name)
+ (when (get-test test-name)
+ ;; if this suite alruady exists, and its :IN some other suite, remove it.
+ (dolist (s (list-all-suites))
+ (when (gethash test-name (tests s))
+ (remhash test-name (tests s))))))
+
+(defun make-suite (name &key description ((:in parent-suite) *suite*) fixture)
+ "Create a new test suite object.
+
+Overrides any existing suite named NAME."
+ (remove-from-suites name)
+ (let ((suite (make-instance 'test-suite :name name :fixture fixture)))