X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fsuite.lisp;h=43e5f70ed000049d67e61e34119719f256be5c5c;hb=c594b36a037a74047be52c9c0e35eefcbbcf14da;hp=eb2691da4d38a1eb87a7b1928b13e10e4c58c60a;hpb=55740edc3e2b3444e7e17978f68df8eced2b19e7;p=fiveam.git diff --git a/src/suite.lisp b/src/suite.lisp index eb2691d..43e5f70 100644 --- a/src/suite.lisp +++ b/src/suite.lisp @@ -1,4 +1,4 @@ -;; -*- lisp -*- +;;;; -*- Mode: Lisp; indent-tabs-mode: nil -*- (in-package :it.bese.fiveam) @@ -34,14 +34,14 @@ named NAME." (def-suite ,name ,@def-suite-args) (in-suite ,name))) -(defun make-suite (name &key description in) +(defun make-suite (name &key description ((:in parent-suite))) "Create a new test suite object. -Overides any existing suite named NAME." +Overrides any existing suite named NAME." (let ((suite (make-instance 'test-suite :name name))) (when description (setf (description suite) description)) - (loop for i in (ensure-list in) + (loop for i in (ensure-list parent-suite) for in-suite = (get-test i) do (progn (when (null in-suite) @@ -55,7 +55,7 @@ Overides any existing suite named NAME." ;;;; ** Managing the Current Suite (defvar *suite* (setf (get-test 'NIL) - (make-suite 'NIL :description "Global Suite")) + (make-suite 'NIL :description "Default global suite")) "The current test suite object") (defmacro in-suite (suite-name) @@ -72,14 +72,14 @@ See also: DEF-SUITE *SUITE*" `(%in-suite ,suite-name :in ,in :fail-on-error nil)) (defmacro %in-suite (suite-name &key (fail-on-error t) in) - (with-unique-names (suite) + (with-gensyms (suite) `(progn - (if-bind ,suite (get-test ',suite-name) + (if-let (,suite (get-test ',suite-name)) (setf *suite* ,suite) (progn (when ,fail-on-error (cerror "Create a new suite named ~A." - "Unkown suite ~A." ',suite-name)) + "Unknown suite ~A." ',suite-name)) (setf (get-test ',suite-name) (make-suite ',suite-name :in ',in) *suite* (get-test ',suite-name)))) ',suite-name)))