From a7b6c79676b722fc5e4eae6a48024e17c44e1836 Mon Sep 17 00:00:00 2001 From: "Thomas M. Hermann" Date: Sat, 13 Oct 2012 12:41:24 -0500 Subject: [PATCH] Merge failure-control-string with print-failure. --- lisp-unit.lisp | 40 ++++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/lisp-unit.lisp b/lisp-unit.lisp index 8d30fe0..78ee58e 100644 --- a/lisp-unit.lisp +++ b/lisp-unit.lisp @@ -125,30 +125,38 @@ assertion.") ;;; Failure control strings -(defgeneric failure-control-string (type) - (:method (type) - "~& | Expected ~{~S~^; ~} ~<~% | ~:;but saw ~{~S~^; ~}~>") +(defgeneric print-failure (type form expected actual extras) (:documentation - "Return the FORMAT control string for the failure type.")) + "Report the details of the failure assertion.")) -(defmethod failure-control-string ((type (eql :error))) - "~& | ~@[Should have signalled ~{~S~^; ~} but saw~] ~{~S~^; ~}") - -(defmethod failure-control-string ((type (eql :macro))) - "~& | Should have expanded to ~{~S~^; ~} ~<~%~:;but saw ~{~S~^; ~}~>") - -(defmethod failure-control-string ((type (eql :output))) - "~& | Should have printed ~{~S~^; ~} ~<~%~:;but saw ~{~S~^; ~}~>") - -(defun print-failure (type form expected actual extras) - "Report the details of the failure assertion." +(defmethod print-failure :around (type form expected actual extras) + "Failure header and footer output." (format t " | Failed Form: ~S" form) - (format t (failure-control-string type) expected actual) + (call-next-method) (when extras (format t "~{~& | ~S => ~S~}~%" (funcall extras))) (format t "~& |~%") type) +(defmethod print-failure (type form expected actual extras) + (format t "~& | Expected ~{~S~^; ~} " expected) + (format t "~<~% | ~:;but saw ~{~S~^; ~}~>" actual)) + +(defmethod print-failure ((type (eql :error)) + form expected actual extras) + (format t "~& | ~@[Should have signalled ~{~S~^; ~}" expected) + (format t " but saw~] ~{~S~^; ~}" actual)) + +(defmethod print-failure ((type (eql :macro)) + form expected actual extras) + (format t "~& | Should have expanded to ~{~S~^; ~} " expected) + (format t "~<~%~:;but saw ~{~S~^; ~}~>" actual)) + +(defmethod print-failure ((type (eql :output)) + form expected actual extras) + (format t "~& | Should have printed ~{~S~^; ~} " expected) + (format t "~<~%~:;but saw ~{~S~^; ~}~>" actual)) + (defun print-error (condition) "Print the error condition." (let ((*print-escape* nil)) -- 2.11.4.GIT