;;; guile-email --- Guile email parser ;;; Copyright © 2018, 2019, 2023 Arun Isaac ;;; ;;; This file is part of guile-email. ;;; ;;; guile-email is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU Affero General Public License as ;;; published by the Free Software Foundation; either version 3 of the ;;; License, or (at your option) any later version. ;;; ;;; guile-email is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;;; Affero General Public License for more details. ;;; ;;; You should have received a copy of the GNU Affero General Public ;;; License along with guile-email. If not, see ;;; . (use-modules (ice-9 format) (ice-9 match) (srfi srfi-64)) (define %my-gnu-runner (let ((runner (test-runner-simple))) (test-runner-on-group-begin! runner (lambda (runner suite-name count) (format (current-error-port) "%%%% Starting test ~a~%" suite-name))) (test-runner-on-group-end! runner (const #f)) (test-runner-on-test-end! runner (lambda (runner) (let ((name (test-runner-test-name runner)) (result (string-upcase (symbol->string (test-result-kind runner))))) (format (current-error-port) "\x1b[~:[31~;32~]m~a\x1b[0m ~a~%" (eq? (test-result-kind runner) 'pass) result name)))) runner)) (match (command-line) ((_ test-files ...) (test-with-runner %my-gnu-runner (for-each load test-files)) (exit (zero? (test-runner-fail-count %my-gnu-runner)))))