X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests.lisp;h=4c741c643993ee7e57156f2ba418a8f32d3a34e3;hb=68cd2db6542fa3442d46b0331ecf8be8f86c09c2;hp=770775617fc07e10d3a11df122483fb0616c6af0;hpb=262e1601f42aa136b8ce452580d784656ce1c6d1;p=jscl.git diff --git a/tests.lisp b/tests.lisp index 7707756..4c741c6 100644 --- a/tests.lisp +++ b/tests.lisp @@ -1,15 +1,41 @@ -(defvar *passed-tests* 0) -(defvar *failed-tests* 0) -(defvar *timestamp* (get-internal-real-time)) +(defparameter *total-tests* 0) +(defparameter *passed-tests* 0) +(defparameter *failed-tests* 0) +(defparameter *expected-failures* 0) +(defparameter *unexpected-passes* 0) + +(defvar *use-html-output-p* t) +(defvar *timestamp* nil) (defmacro test (condition) - `(cond - (,condition - (write-line ,(concat "Test `" (prin1-to-string condition) "' passed")) - (incf *passed-tests*)) - (t - (write-line ,(concat "Test `" (prin1-to-string condition) "' failed.")) - (incf *failed-tests*)))) - -(write-line "Running tests...") -(write-line "") + `(progn + (cond + (,condition + (format t "Test `~S' passed~%" ',condition) + (incf *passed-tests*)) + (t + (if *use-html-output-p* + (format t "Test `~S' failed.~%" ',condition) + (format t "Test `~S' failed.~%" ',condition)) + (incf *failed-tests*))) + (incf *total-tests*))) + +(defmacro expected-failure (condition) + `(progn + (cond + (,condition + (if *use-html-output-p* + (format t "Test `~S' passed unexpectedly!~%" ',condition) + (format t "Test `~S' passed unexpectedly!~%" ',condition)) + (incf *unexpected-passes*)) + (t + (format t "Test `~S' failed failed expectedly.~%" ',condition) + (incf *expected-failures*))) + (incf *total-tests*))) + +(defmacro test-equal (form value) + `(test (equal ,form, value))) + + +(format t "Running tests...~%~%") +(setq *timestamp* (get-internal-real-time))