r5465: *** empty log message ***
authorKevin M. Rosenberg <kevin@rosenberg.net>
Wed, 6 Aug 2003 14:51:01 +0000 (14:51 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Wed, 6 Aug 2003 14:51:01 +0000 (14:51 +0000)
assert.lisp
tcase.lisp
tests.lisp

index 20d12765abd9740a8d79725b036b8becc9a60006..d1d779271d4169a8d3bb27fdb4278287666dbab6 100644 (file)
@@ -2,7 +2,7 @@
 ;;;; *************************************************************************
 ;;;; FILE IDENTIFICATION
 ;;;;
-;;;; ID:       $Id: assert.lisp,v 1.7 2003/08/06 14:15:32 kevin Exp $
+;;;; ID:       $Id: assert.lisp,v 1.8 2003/08/06 14:51:01 kevin Exp $
 ;;;; Purpose:  Assert functions for XLUnit
 ;;;;
 ;;;; *************************************************************************
@@ -49,6 +49,7 @@
      (failure-message ,message "Assert false: ~S" ',v)))
 
 (defmacro assert-condition (condition v &optional message)
+  
   )
 
 (defmacro assert-not-condition (condition v &optional message)
index 414eee87710dbe47031ecac2719debac1495a0b6..4c13e1eefc05871c2516ffb87701b39094ec9780 100644 (file)
@@ -2,7 +2,7 @@
 ;;;; *************************************************************************
 ;;;; FILE IDENTIFICATION
 ;;;;
-;;;; ID:      $Id: tcase.lisp,v 1.4 2003/08/05 22:56:25 kevin Exp $
+;;;; ID:      $Id: tcase.lisp,v 1.5 2003/08/06 14:51:01 kevin Exp $
 ;;;; Purpose: Test fixtures for XLUnit
 ;;;;
 ;;;; *************************************************************************
@@ -72,18 +72,35 @@ that the setup method did for this instance."))
   (set-up test)
   (unwind-protect
       (run-test test)
-    (tear-down test)))
+    (tear-down test))
+  (values))
 
 (defmethod run-test ((test test-case))
     (funcall (method-body test)))
 
-(defmethod run-protected ((test test-case) res &key (handle-errors t))
+(defmethod run-protected ((test test-case) res 
+                         &key (handle-errors t) test-condition)
   (if handle-errors
       (handler-case
          (run-base test)
        (assertion-failed (condition)
          (add-failure res test condition))
+       (t (condition)
+         (when (and test-condition
+                    (not (typep condition test-condition)))
+           (add-failure res test
+                        (make-instance 'assertion-failed
+                          :format-control
+                          "Assert condition ~A, but condition ~A signaled"
+                          :format-arguments
+                          (list test-condition condition)))))
        (serious-condition (condition)
-         (add-error res test condition)))
-      (run-base test))
+         (add-error res test condition))
+       (:no-error ()
+         (when test-condition
+           (add-failure res test
+                        (make-instance 'assertion-failed
+                          :format-control "Assert condition ~A, but no condition signaled"
+                          :format-arguments (list test-condition))))))
+    (run-base test))
   res)
index b91520c21475bd273529b655bbb147c3c32473c7..60daebf30bd0f7de9d777e8515ac238b92dc007b 100644 (file)
@@ -2,7 +2,7 @@
 ;;;; *************************************************************************
 ;;;; FILE IDENTIFICATION
 ;;;;
-;;;; Id:      $Id: tests.lisp,v 1.12 2003/08/06 11:37:23 kevin Exp $
+;;;; Id:      $Id: tests.lisp,v 1.13 2003/08/06 14:51:01 kevin Exp $
 ;;;; Purpose: Self Test suite for XLUnit
 ;;;;
 ;;;; *************************************************************************
   (assert-equal "2 run, 0 erred, 0 failed" 
                (summary (run (get-suite test-two-cases)))))
 
+(define-condition test-condition (error)
+  ())
 
+(def-test-method test-condition ((self test-case-test) :run nil)
+  (assert-condition 
+   test-condition 
+   (error (make-instance 'test-condition))))
+                   
 (textui-test-run (get-suite test-case-test))