diff tests/automated/test-harness.el @ 4747:294a86d29f99

Eliminate C asserts from c-tests.
author Stephen J. Turnbull <stephen@xemacs.org>
date Mon, 16 Nov 2009 12:00:38 +0900
parents bceb3e285ae7
children a3c673c0720b
line wrap: on
line diff
--- a/tests/automated/test-harness.el	Mon Nov 16 11:58:19 2009 +0900
+++ b/tests/automated/test-harness.el	Mon Nov 16 12:00:38 2009 +0900
@@ -267,22 +267,27 @@
 	       (Print-Skip ,description ,reason))
 	   ,@body))
 
-      (defmacro Assert (assertion &optional failing-case)
+      (defmacro Assert (assertion &optional failing-case description)
+	"Test passes if ASSERTION is true.
+Optional FAILING-CASE describes the particular failure.
+Optional DESCRIPTION describes the assertion.
+FAILING-CASE and DESCRIPTION are useful when Assert is used in a loop."
 	`(condition-case error-info
 	  (progn
 	    (assert ,assertion)
-	    (Print-Pass "%S" (quote ,assertion))
+	    (Print-Pass "%S" (quote ,(or description assertion)))
 	    (incf passes))
 	  (cl-assertion-failed
 	   (Print-Failure (if ,failing-case
 			      "Assertion failed: %S; failing case = %S"
 			    "Assertion failed: %S")
-			  (quote ,assertion) ,failing-case)
+			  (quote ,(or description assertion)) ,failing-case)
 	   (incf assertion-failures))
 	  (t (Print-Failure (if ,failing-case
 				"%S ==> error: %S; failing case =  %S"
 			      "%S ==> error: %S")
-			    (quote ,assertion) error-info ,failing-case)
+			    (quote ,(or description assertion))
+			    error-info ,failing-case)
 	     (incf other-failures)
 	     )))