;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*- ;;;; ************************************************************************* ;;;; FILE IDENTIFICATION ;;;; ;;;; ID: $Id: result.lisp,v 1.3 2003/08/04 12:28:46 kevin Exp $ ;;;; Purpose: Result functions for XLUnit ;;;; ;;;; ************************************************************************* (in-package #:xlunit) (defclass test-result () ((test :initarg :test :reader result-test) (count :initform 0 :accessor test-count) (failures :initarg :failures :reader test-failures :initform nil) (errors :initarg :errors :reader test-errors :initform nil)) (:documentation "Results of running test(s)")) (defun make-test-result () (make-instance 'test-result)) (defclass test-failure () ((failed-test :initarg :failed-test :reader failed-test) (thrown-condition :initarg :thrown-condition :reader thrown-condition)) (:documentation "Stored failures/errors in test-result slots")) (defun make-test-failure (test condition) (make-instance 'test-failure :failed-test test :thrown-condition condition)) (defmethod is-failure ((failure test-failure)) "Returns T if a failure was a test-failure condition" (typep (thrown-condition failure) 'test-failure-condition)) (defmethod print-object ((obj test-failure) stream) (print-unreadable-object (obj stream :type t :identity nil) (format stream "~A: " (failed-test obj)) (apply #'format stream (simple-condition-format-control (thrown-condition obj)) (simple-condition-format-arguments (thrown-condition obj))))) (defmethod was-successful ((result test-result)) "Returns T if a result has no failures or errors" (and (null (test-failures result)) (null (test-errors result))))