35 lines
1.1 KiB
Scheme
35 lines
1.1 KiB
Scheme
#!/usr/bin/env -S guile --no-auto-compile -s
|
|
!#
|
|
;;; Test runner for gulie
|
|
|
|
;; Add project root to load path
|
|
(let ((dir (dirname (dirname (current-filename)))))
|
|
(set! %load-path (cons dir %load-path)))
|
|
|
|
(use-modules (srfi srfi-64))
|
|
|
|
;; Configure test runner for CI-friendly output
|
|
(test-runner-current
|
|
(let ((runner (test-runner-simple)))
|
|
(test-runner-on-final! runner
|
|
(lambda (runner)
|
|
(let ((pass (test-runner-pass-count runner))
|
|
(fail (test-runner-fail-count runner))
|
|
(skip (test-runner-skip-count runner)))
|
|
(newline)
|
|
(format #t "Results: ~a passed, ~a failed, ~a skipped~%"
|
|
pass fail skip)
|
|
(when (> fail 0)
|
|
(exit 1)))))
|
|
runner))
|
|
|
|
;; Load and run all test files (paths relative to project root)
|
|
(let ((root (dirname (dirname (current-filename)))))
|
|
(define (load-test name)
|
|
(load (string-append root "/test/" name)))
|
|
(load-test "test-tokenizer.scm")
|
|
(load-test "test-cst.scm")
|
|
(load-test "test-rules.scm")
|
|
(load-test "test-suppression.scm")
|
|
(load-test "test-compiler.scm"))
|