|
114 | 114 | (srfi-9
|
115 | 115 | (define-syntax %test-record-define
|
116 | 116 | (syntax-rules ()
|
117 |
| - ((%test-record-define alloc runner? (name index setter getter) ...) |
118 |
| - (define-record-type test-runner |
| 117 | + ((%test-record-define tname alloc runner? (name index getter setter) ...) |
| 118 | + (define-record-type tname |
119 | 119 | (alloc)
|
120 | 120 | runner?
|
121 |
| - (name setter getter) ...))))) |
| 121 | + (name getter setter) ...))))) |
122 | 122 | (else
|
123 | 123 | (define %test-runner-cookie (list "test-runner"))
|
124 | 124 | (define-syntax %test-record-define
|
125 | 125 | (syntax-rules ()
|
126 |
| - ((%test-record-define alloc runner? (name index getter setter) ...) |
| 126 | + ((%test-record-define tname alloc runner? (name index getter setter) ...) |
127 | 127 | (begin
|
128 | 128 | (define (runner? obj)
|
129 | 129 | (and (vector? obj)
|
|
140 | 140 | (define (setter runner value)
|
141 | 141 | (vector-set! runner index value)) ...)))))))
|
142 | 142 |
|
143 |
| -(%test-record-define |
| 143 | +(%test-record-define test-runner |
144 | 144 | %test-runner-alloc test-runner?
|
145 | 145 | ;; Cumulate count of all tests that have passed and were expected to.
|
146 | 146 | (pass-count 1 test-runner-pass-count test-runner-pass-count!)
|
|
247 | 247 | (set! %test-runner-factory runner))))))
|
248 | 248 |
|
249 | 249 | ;; A safer wrapper to test-runner-current.
|
250 |
| -(define (test-runner-get) |
251 |
| - (let ((r (test-runner-current))) |
252 |
| - (if (not r) |
253 |
| - (cond-expand |
254 |
| - (srfi-23 (error "test-runner not initialized - test-begin missing?")) |
255 |
| - (else #t))) |
256 |
| - r)) |
| 250 | +(cond-expand |
| 251 | + (kawa |
| 252 | + (define (test-runner-get) ::test-runner |
| 253 | + (let ((r (test-runner-current))) |
| 254 | + (if (not r) |
| 255 | + (error "test-runner not initialized - test-begin missing?")) |
| 256 | + r))) |
| 257 | + (else |
| 258 | + (define (test-runner-get) |
| 259 | + (let ((r (test-runner-current))) |
| 260 | + (if (not r) |
| 261 | + (cond-expand |
| 262 | + (srfi-23 (error "test-runner not initialized - test-begin missing?")) |
| 263 | + (else #t))) |
| 264 | + r)))) |
257 | 265 |
|
258 | 266 | (define (%test-specifier-matches spec runner)
|
259 | 267 | (spec runner))
|
|
554 | 562 | (set-cdr! p value)
|
555 | 563 | (test-result-alist! runner (cons (cons pname value) alist)))))
|
556 | 564 |
|
| 565 | +(define (test-result-actual-value! runner value) |
| 566 | + (test-result-set! runner 'actual-value value)) |
| 567 | + |
| 568 | +(define (test-result-expected-value! runner value) |
| 569 | + (test-result-set! runner 'expected-value value)) |
| 570 | + |
557 | 571 | (define (test-result-clear runner)
|
558 | 572 | (test-result-alist! runner '()))
|
559 | 573 |
|
|
683 | 697 | (let ()
|
684 | 698 | (if (%test-on-test-begin r)
|
685 | 699 | (let ((exp expected))
|
686 |
| - (test-result-set! r 'expected-value exp) |
| 700 | + (test-result-expected-value! r exp) |
687 | 701 | (let ((res (%test-evaluate-with-catch expr)))
|
688 |
| - (test-result-set! r 'actual-value res) |
| 702 | + (test-result-actual-value! r res) |
689 | 703 | (%test-on-test-end r (comp exp res)))))
|
690 | 704 | (%test-report-result)))))
|
691 | 705 |
|
|
707 | 721 | (if (%test-on-test-begin r)
|
708 | 722 | (let ()
|
709 | 723 | (let ((res (%test-evaluate-with-catch expr)))
|
710 |
| - (test-result-set! r 'actual-value res) |
| 724 | + (test-result-actual-value! r res) |
711 | 725 | (%test-on-test-end r res))))
|
712 | 726 | (%test-report-result)))))
|
713 | 727 |
|
|
830 | 844 | (%test-on-test-end r
|
831 | 845 | (catch #t
|
832 | 846 | (lambda ()
|
833 |
| - (test-result-set! r 'actual-value expr) |
| 847 | + (test-result-actual-value! r expr) |
834 | 848 | #f)
|
835 | 849 | (lambda (key . args)
|
836 | 850 | ;; TODO: decide how to specify expected
|
|
861 | 875 | (%test-on-test-end r
|
862 | 876 | (try-catch
|
863 | 877 | (let ()
|
864 |
| - (test-result-set! r 'actual-value expr) |
| 878 | + (test-result-actual-value! r expr) |
865 | 879 | #f)
|
866 | 880 | (ex <java.lang.Throwable>
|
867 | 881 | (test-result-set! r 'actual-error ex)
|
|
874 | 888 | (%test-on-test-end r
|
875 | 889 | (try-catch
|
876 | 890 | (let ()
|
877 |
| - (test-result-set! r 'actual-value expr) |
| 891 | + (test-result-actual-value! r expr) |
878 | 892 | #f)
|
879 | 893 | (ex <java.lang.Throwable>
|
880 | 894 | (test-result-set! r 'actual-error ex)
|
|
0 commit comments