scm: Support test failure expectation.
[mes.git] / 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)))))))