From 94c8b5238555dba56b5567945eab65d2632f78ba Mon Sep 17 00:00:00 2001
From: Joseph A. Oswald, III <josephoswald@gmail.com>
Date: Sat, 18 Jul 2009 12:48:05 -0400
Subject: [PATCH] Add with-empty-test-database macro

Still have bug that this does not accurately empty the test database.
---
 rt-test.lisp |   28 ++++++++++++++++------------
 1 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/rt-test.lisp b/rt-test.lisp
index c045aa1..ff603b5 100644
--- a/rt-test.lisp
+++ b/rt-test.lisp
@@ -32,22 +32,26 @@
 (defmacro setup (&rest body)
   `(do-setup '(progn ., body)))
 
+(defmacro with-empty-test-database (&body body)
+  `(let ((regression-test::*entries* (list nil))
+	 (*test* nil)
+	 (regression-test::*in-test* nil))
+     ,@body))
+
 (defun do-setup (form)
-  (let ((*test* nil)
-	(*do-tests-when-defined* nil)
-	(rt::*entries* (list nil))
-	(rt::*in-test* nil)
-	(rt::*debug* t)
-	result)
-    (deftest t1 4 4)
-    (deftest (t 2) 4 3)
-    (values-list
-      (cons (normalize
+  (with-empty-test-database
+    (let ((*do-tests-when-defined* nil)
+	  (rt::*debug* t)
+	  result)
+      (deftest t1 4 4)
+      (deftest (t 2) 4 3)
+      (values-list
+       (cons (normalize
 	      (with-output-to-string (*standard-output*)
 		(setq result
 		      (multiple-value-list
-			(catch 'rt::*debug* (eval form))))))
-	    result))))
+		       (catch 'rt::*debug* (eval form))))))
+	     result)))))
 
 (defun normalize (string)
   (with-input-from-string (s string)
-- 
1.5.4.5

