I ran "make check" and found only one test that the above diff breaks: ert-test-test-result-expected-p. I can't seem to figure out why it doesn't work. The test fails because of these two: (let ((test (make-ert-test :body (lambda () (ert-fail "failed"))))) (should-not (ert-test-result-expected-p test (ert-run-test test)))) (let ((test (make-ert-test :body (lambda () (ert-fail "failed")) :expected-result-type ':failed))) (should (ert-test-result-expected-p test (ert-run-test test)))) I tried to re-throw the ert-test-failed signal and still the above two forms raise error an error.