X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fassertoid.lisp;h=0469450505393b3a52356fa17b82440e43603537;hb=bed279acc9bd04eb1bbf56acb0dcaa3b1acf04f0;hp=4b1e9bf477ffcdb24e54a3137920459cad5564b9;hpb=675c5a9f9e3028bc2fd922ed6f570f01cf8c41cf;p=sbcl.git diff --git a/tests/assertoid.lisp b/tests/assertoid.lisp index 4b1e9bf..0469450 100644 --- a/tests/assertoid.lisp +++ b/tests/assertoid.lisp @@ -14,6 +14,13 @@ (cl:in-package :cl-user) +(defmacro grab-condition (&body body) + `(nth-value 1 + (ignore-errors ,@body))) + +(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 ;;; optimizations to pass to (DECLARE (OPTIMIZE ..)), to cause the @@ -33,8 +40,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