X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fassertoid.lisp;h=0e76532d70d7ce7df34e04d8a0411c982a9e9f00;hb=25c9bfeaaf0597e37271dde31eed7037dba391e0;hp=c6dd931b4aa013840236e979603965562cab34bb;hpb=e58b011bbe611f10fbc316eea0a3e205c3e40ac7;p=sbcl.git diff --git a/tests/assertoid.lisp b/tests/assertoid.lisp index c6dd931..0e76532 100644 --- a/tests/assertoid.lisp +++ b/tests/assertoid.lisp @@ -12,14 +12,18 @@ ;;;; absolutely no warranty. See the COPYING and CREDITS files for ;;;; more information. -(cl:in-package :cl-user) +(cl:defpackage "ASSERTOID" + (:use "CL") + (:export "GRAB-CONDITION" "RAISES-ERROR?" "ASSERTOID")) + +(cl:in-package "ASSERTOID") (defmacro grab-condition (&body body) `(nth-value 1 (ignore-errors ,@body))) -(defmacro raises-error? (&body body) - `(typep (nth-value 1 (ignore-errors ,@body)) 'error)) +(defmacro raises-error? (form &optional (error-subtype-spec 'error)) + `(typep (nth-value 1 (ignore-errors ,form)) ',error-subtype-spec)) ;;; EXPR is an expression to evaluate (both with EVAL and with ;;; COMPILE/FUNCALL). EXTRA-OPTIMIZATIONS is a list of lists of @@ -40,8 +44,8 @@ ;;; LAMBDA. EXPECTED-EQL, EXPECTED-EQUAL, and EXPECTED-EQUALP are ;;; shorthand for special cases of EXPECTED-LAMBDA. ;;; -;;; Use EXPECTED-ERROR to require an error to be thrown. Use -;;; EXPECTED-ERROR-LAMBDA to require that an error be thrown and +;;; Use EXPECTED-ERROR to require an error to be signalled. Use +;;; EXPECTED-ERROR-LAMBDA to require that an error be signalled and ;;; that further it satisfies the given lambda. (defmacro assertoid (expr &key @@ -85,7 +89,7 @@ (flet ((frob (evaloid) (let ((result (funcall evaloid expr))) (unless (funcall eval-expected-lambda result) - (error "failed assertoid" expr)))) + (error "failed assertoid ~S" expr)))) (compile-as-evaloid (optimizations) (lambda (expr) (funcall (compile nil