(use test) (use condition-utils) (define testc (make-exn-condition+ 'test "test" '(test) 'test '(extra test 23))) (define testc? (make-condition-predicate exn test extra)) (test-assert "composite of exn test extra" (testc? testc)) (test "test property of extra component of (exn test extra)" 23 ((condition-property-accessor 'extra 'test) testc)) (define testc-extra-test (make-condition-property-accessor extra test)) (define testc-extra-foo (make-condition-property-accessor extra foo 'foobar)) (test 23 (testc-extra-test testc)) (test 'foobar (testc-extra-foo testc)) (use standard-conditions) (test-assert (exn-condition? testc)) (test 'test (exn-location testc)) (test "test" (exn-message testc)) (test '(test) (exn-arguments testc)) (test #f (exn-call-chain testc)) (test-exit)