Plaster

common-lisp
(define-condition my-warning (warning) ()) (defun f () (warn 'my-warning) 0) (defun test-f () (let ((warning-signaled-p nil)) (flet ((handler (c) (setf warning-signaled-p t) (muffle-warning c))) (handler-bind ((my-warning #'handler)) (let ((result (f))) (assert (not (null warning-signaled-p))) (assert (eql result 0)))))))