diff --git a/pkgs/rackunit-pkgs/rackunit-lib/rackunit/private/check.rkt b/pkgs/rackunit-pkgs/rackunit-lib/rackunit/private/check.rkt index 0e6433e..62b23a2 100644 --- a/pkgs/rackunit-pkgs/rackunit-lib/rackunit/private/check.rkt +++ b/pkgs/rackunit-pkgs/rackunit-lib/rackunit/private/check.rkt @@ -98,12 +98,12 @@ ;; refail-check : exn:test:check -> (exception raised) ;; ;; Raises an exn:test:check with the contents of the -;; given parameter. Useful for propogating internal +;; given exception. Useful for propogating internal ;; errors to the outside world. (define (refail-check exn) (test-log! #f) (raise - (make-exn:test:check "Check failure" + (make-exn:test:check (exn-message exn) (exn-continuation-marks exn) (exn:test:check-stack exn)))) diff --git a/pkgs/rackunit-pkgs/rackunit-test/tests/rackunit/check-test.rkt b/pkgs/rackunit-pkgs/rackunit-test/tests/rackunit/check-test.rkt index 8e7be6e..848afed 100644 --- a/pkgs/rackunit-pkgs/rackunit-test/tests/rackunit/check-test.rkt +++ b/pkgs/rackunit-pkgs/rackunit-test/tests/rackunit/check-test.rkt @@ -317,6 +317,32 @@ #t found?)) #f names)))) + + (test-case + "check-exn has check failure message" + (let* ([case (delay-test + (test-case "check-exn" + (check-exn #rx"ZZZZZ" + (lambda () (fail-check "The Message")))))] + [result (test-failure-result (car (run-test case)))] + [names (map check-info-name + (exn:test:check-stack result))]) + (check-equal? + "The Message" + (exn-message result)))) + + (test-case + "check-not-exn has check failure message" + (let* ([case (delay-test + (test-case "check-not-exn" + (check-not-exn + (lambda () (fail-check "The Message")))))] + [result (test-failure-result (car (run-test case)))] + [names (map check-info-name + (exn:test:check-stack result))]) + (check-equal? + "The Message" + (exn-message result)))) ;; Verify that check-exn and check-not-exn raise errors (not check ;; failures) if not given thunks.