From ad6365f34c422d5d4999d882a2641d7d833ca07b Mon Sep 17 00:00:00 2001 From: Eric Dobson Date: Sat, 8 Mar 2014 16:27:03 -0800 Subject: [PATCH] Make check-exn/check-not-exn keep the check failure message. --- .../rackunit-lib/rackunit/private/check.rkt | 4 +-- .../tests/rackunit/check-test.rkt | 26 +++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/pkgs/rackunit-pkgs/rackunit-lib/rackunit/private/check.rkt b/pkgs/rackunit-pkgs/rackunit-lib/rackunit/private/check.rkt index 0e6433e22b..62b23a25ac 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 8e7be6e82e..848afed8ab 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.