scm: Support test failure expectation.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sat, 1 Apr 2017 13:01:59 +0000 (15:01 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Sat, 1 Apr 2017 13:01:59 +0000 (15:01 +0200)
* module/mes/test.mes (result): Take second argument to mean expected
  failure count.

module/mes/test.mes

index f6437e82a5c0576d4117bf308a9f62305a195652..8c46fb6a497add20746115f50aef30b749397567 100644 (file)
     (lambda (. t)
       (cond ((or (null? t) (eq? (car t) result)) (list pass fail))
             ((eq? (car t) 'report)
     (lambda (. t)
       (cond ((or (null? t) (eq? (car t) result)) (list pass fail))
             ((eq? (car t) 'report)
-             (newline)
-             (display "passed: ") (display pass) (newline)
-             (display "failed: ") (display fail) (newline)
-             (display "total: ") (display (+ pass fail)) (newline)
-             (exit fail))
+             (let ((expect (if (null? (cdr t)) 0 (cadr t))))
+               (newline)
+               (display "passed: ") (display pass) (newline)
+               (display "failed: ") (display fail) (newline)
+               (if (not (eq? expect 0)) (begin (display "expect: ") (display expect) (newline)))
+               (display "total: ") (display (+ pass fail)) (newline)
+               (exit (if (eq? expect fail) 0 fail))))
             ((car t) (display ": pass") (newline) (set! pass (+ pass 1)))
             (#t (display ": fail") (newline) (set! fail (+ fail 1)))))))
 
             ((car t) (display ": pass") (newline) (set! pass (+ pass 1)))
             (#t (display ": fail") (newline) (set! fail (+ fail 1)))))))