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)
-             (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)))))))