1 ;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
2 ;;;; *************************************************************************
3 ;;;; FILE IDENTIFICATION
5 ;;;; ID: $Id: assert.lisp,v 1.5 2003/08/04 16:42:27 kevin Exp $
6 ;;;; Purpose: Assert functions for XLUnit
8 ;;;; *************************************************************************
13 (define-condition assertion-failed (simple-condition)
14 ((message :initform nil :initarg :message :accessor message))
15 (:documentation "Base class for all test failures."))
18 (defun failure-message (message &optional format-str &rest args)
19 "Signal a test failure and exit the test."
20 (signal 'assertion-failed
22 :format-control format-str
23 :format-arguments args))
25 (defun failure (format-str &rest args)
26 "Signal a test failure and exit the test."
27 (apply #'failure-message nil format-str args))
29 (defun assert-equal (v1 v2 &optional message)
31 (failure-message message "Test equal: ~S ~S" v1 v2)))
33 (defun assert-eql (v1 v2 &optional message)
35 (failure-message message "Test eql: ~S ~S" v1 v2)))
37 (defmacro assert-true (v &optional message)
39 (failure-message message "Not true: ~S" ',v)))
41 (defmacro assert-false (v &optional message)
43 (failure-message message "Not false: ~S" ',v)))