mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 11:50:28 +02:00
test-suite: Add `pass-if-equal'.
* test-suite/test-suite/lib.scm (pass-if-equal): New macro. (run-test): Upon `fail', pass ARGS to REPORT.
This commit is contained in:
parent
10744b7c50
commit
d4eee584e0
2 changed files with 21 additions and 2 deletions
|
@ -3,7 +3,9 @@
|
||||||
((nil . ((fill-column . 72)
|
((nil . ((fill-column . 72)
|
||||||
(tab-width . 8)))
|
(tab-width . 8)))
|
||||||
(c-mode . ((c-file-style . "gnu")))
|
(c-mode . ((c-file-style . "gnu")))
|
||||||
(scheme-mode . ((indent-tabs-mode . nil)))
|
(scheme-mode
|
||||||
|
. ((indent-tabs-mode . nil)
|
||||||
|
(eval . (put 'pass-if-equal 'scheme-indent-function 2))))
|
||||||
(emacs-lisp-mode . ((indent-tabs-mode . nil)))
|
(emacs-lisp-mode . ((indent-tabs-mode . nil)))
|
||||||
(texinfo-mode . ((indent-tabs-mode . nil)
|
(texinfo-mode . ((indent-tabs-mode . nil)
|
||||||
(fill-column . 72))))
|
(fill-column . 72))))
|
||||||
|
|
|
@ -44,6 +44,7 @@
|
||||||
;; Reporting passes and failures.
|
;; Reporting passes and failures.
|
||||||
run-test
|
run-test
|
||||||
pass-if expect-fail
|
pass-if expect-fail
|
||||||
|
pass-if-equal
|
||||||
pass-if-exception expect-fail-exception
|
pass-if-exception expect-fail-exception
|
||||||
|
|
||||||
;; Naming groups of tests in a regular fashion.
|
;; Naming groups of tests in a regular fashion.
|
||||||
|
@ -332,7 +333,11 @@
|
||||||
((pass)
|
((pass)
|
||||||
(report (if expect-pass 'pass 'upass) test-name))
|
(report (if expect-pass 'pass 'upass) test-name))
|
||||||
((fail)
|
((fail)
|
||||||
(report (if expect-pass 'fail 'xfail) test-name))
|
;; ARGS may contain extra info about the failure,
|
||||||
|
;; such as the expected and actual value.
|
||||||
|
(apply report (if expect-pass 'fail 'xfail)
|
||||||
|
test-name
|
||||||
|
args))
|
||||||
((unresolved untested unsupported)
|
((unresolved untested unsupported)
|
||||||
(report key test-name))
|
(report key test-name))
|
||||||
((quit)
|
((quit)
|
||||||
|
@ -352,6 +357,18 @@
|
||||||
((_ name rest ...)
|
((_ name rest ...)
|
||||||
(run-test name #t (lambda () rest ...)))))
|
(run-test name #t (lambda () rest ...)))))
|
||||||
|
|
||||||
|
(define-syntax pass-if-equal
|
||||||
|
(syntax-rules ()
|
||||||
|
"Succeed if and only if BODY's return value is equal? to EXPECTED."
|
||||||
|
((_ name expected body ...)
|
||||||
|
(run-test 'name #t
|
||||||
|
(lambda ()
|
||||||
|
(let ((result (begin body ...)))
|
||||||
|
(or (equal? expected result)
|
||||||
|
(throw 'fail
|
||||||
|
'expected-value expected
|
||||||
|
'actual-value result))))))))
|
||||||
|
|
||||||
;;; A short form for tests that are expected to fail, taken from Greg.
|
;;; A short form for tests that are expected to fail, taken from Greg.
|
||||||
(define-syntax expect-fail
|
(define-syntax expect-fail
|
||||||
(syntax-rules ()
|
(syntax-rules ()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue