(setf bindings (list (list v ?value))
effective-test `(,?satisfies ,v)
default-reason-args (list "~S did not satisfy ~S" v `',?satisfies)))
- (t
+ (?_
(setf bindings '()
effective-test test
- default-reason-args "No reason supplied.")))
+ default-reason-args (list "No reason supplied"))))
`(let ,bindings
(if ,effective-test
(add-result 'test-passed :test-expr ',test)
- (process-failure :reason ,(if (null reason-args)
- `(format nil ,@default-reason-args)
- `(format nil ,@reason-args))
+ (process-failure :reason (format nil ,@(or reason-args default-reason-args))
:test-expr ',test))))))
;;;; *** Other checks
:test-expr ',condition)
(return-from ,block-name t))))
(block nil
- ,@body
- (process-failure
- :reason ,(if reason-control
- `(format nil ,reason-control ,@reason-args)
- `(format nil "Failed to signal a ~S" ',condition))
- :test-expr ',condition)
- (return-from ,block-name nil)))))))
+ ,@body))
+ (process-failure
+ :reason ,(if reason-control
+ `(format nil ,reason-control ,@reason-args)
+ `(format nil "Failed to signal a ~S" ',condition))
+ :test-expr ',condition)
+ (return-from ,block-name nil)))))
(defmacro finishes (&body body)
"Generates a pass if BODY executes to normal completion. In