diff --git a/testing.lisp b/testing.lisp index d489a1e..f265ae9 100644 --- a/testing.lisp +++ b/testing.lisp @@ -14,19 +14,28 @@ (defclass test-suite () ((name :reader name :initform "test" :initarg :name) - (result :accessor result :initform nil))) + (result :accessor result :initform nil) + (ok :accessor ok :initform t))) (defun test-suite (&optional (name "test")) (make-instance 'test-suite :name name)) (defun show-result () - (format t "~a~%" (name *test-suite*) ) - (dolist (res (result *test-suite*)) + (format t "=== ~a Tests ===~%" (name *test-suite*) ) + (dolist (res (reverse (result *test-suite*))) (let ((tst (reverse res))) - (format t "~a: ~a~%" (string-downcase (car tst)) (cdr tst))))) + (format t "~a: ~a~%" (string-downcase (car tst)) (cdr tst)))) + (if (not (ok *test-suite*)) + (format t "*****~%")) + (values)) (defun == (have wanted) - (push (equalp have wanted) (car (result *test-suite*)))) + (let ((is-ok (equalp have wanted))) + (if (not is-ok) + (progn + (push (format nil "~a!=~a" have wanted) (car (result *test-suite*))) + (setf (ok *test-suite*) nil)) + (push is-ok (car (result *test-suite*)))))) (defmacro deftest (name args &body body) `(defun ,name ,args