#!/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") (load-test "test-config.scm") (load-test "test-engine.scm") (load-test "test-cli.scm"))