Make run-tests exit 1 when there are failures

This commit is contained in:
2026-03-04 22:08:34 +00:00
parent fb70a2585f
commit e5f9d2d828
2 changed files with 18 additions and 12 deletions

View File

@@ -1,5 +1,5 @@
(define-module (e2e testing)
#:export (assert define-test run-tests))
#:export (assert define-test run-tests run-tests-with-cleanup))
(use-modules
(sxml simple)
@@ -47,10 +47,8 @@
((error? result) `((error (@ (message ,(cddr result))))))
(#t '()))))
(define (junit-report results)
(let ((count (length results))
(fails (length (filter fail? results)))
(errors (length (filter error? results))))
(define (junit-report results fails errors)
(let ((count (length results)))
`(testsuites
(testsuite
(@ (name "wipforth e2e")
@@ -60,5 +58,14 @@
,@(map test-junit-report results)))))
(define (run-tests)
(let ((results (map run-test (fluid-ref *tests*))))
(sxml->xml (junit-report results))))
(let* ((results (map run-test (fluid-ref *tests*)))
(fails (length (filter fail? results)))
(errors (length (filter error? results))))
(sxml->xml (junit-report results fails errors))
(exit (if (= (+ fails errors) 0) 0 1))))
(define-syntax-rule (run-tests-with-cleanup body ...)
(dynamic-wind
(lambda () #f)
run-tests
(lambda () body ...)))

View File

@@ -40,8 +40,7 @@
(assert (string=? "Hello, world!" result-line)
(format #f "Result line: ~s" result-line))))
(run-tests)
(client-teardown client)
(close-firefox firefox)
(server-stop server)
(run-tests-with-cleanup
(client-teardown client)
(close-firefox firefox)
(server-stop server))