diff options
| -rw-r--r-- | .guix/guile-xapian-package.scm | 5 | ||||
| -rw-r--r-- | Makefile.am | 14 | ||||
| -rw-r--r-- | build-aux/test-driver.scm.in | 100 | ||||
| -rw-r--r-- | configure.ac | 8 |
4 files changed, 13 insertions, 114 deletions
diff --git a/.guix/guile-xapian-package.scm b/.guix/guile-xapian-package.scm index 7016c30..d4840e1 100644 --- a/.guix/guile-xapian-package.scm +++ b/.guix/guile-xapian-package.scm @@ -1,5 +1,5 @@ ;;; guile-xapian --- Guile bindings for Xapian -;;; Copyright © 2021–2024 Arun Isaac <arunisaac@systemreboot.net> +;;; Copyright © 2021–2024, 2026 Arun Isaac <arunisaac@systemreboot.net> ;;; ;;; This file is part of guile-xapian. ;;; @@ -21,6 +21,7 @@ #:use-module ((gnu packages autotools) #:select (autoconf autoconf-archive automake libtool)) #:use-module ((gnu packages emacs) #:select (emacs-minimal)) #:use-module ((gnu packages guile-xyz) #:prefix guix:) + #:use-module ((gnu packages guile-xyz) #:select (guile-run64)) #:use-module ((guix build-system guile) #:select (%guile-build-system-modules)) #:use-module (guix gexp) #:use-module (guix git-download) @@ -38,7 +39,7 @@ (const #t)))) (native-inputs (modify-inputs (package-native-inputs guix:guile-xapian) - (prepend autoconf autoconf-archive automake libtool))))) + (prepend autoconf autoconf-archive automake libtool guile-run64))))) (define-public guile2.2-xapian (package diff --git a/Makefile.am b/Makefile.am index 625f270..fe81c4f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,5 +1,5 @@ # guile-xapian --- Guile bindings for Xapian -# Copyright © 2020–2024 Arun Isaac <arunisaac@systemreboot.net> +# Copyright © 2020–2024, 2026 Arun Isaac <arunisaac@systemreboot.net> # Copyright © 2022 Bob131 <bob@bob131.so> # # This file is part of guile-xapian. @@ -79,18 +79,14 @@ xapian/xapian.go: xapian/xapian.scm libguilexapian-@GUILE_EFFECTIVE_VERSION@.la # Tests -TEST_EXTENSIONS = .scm -SCM_TESTS = tests/xapian.scm -TESTS = $(SCM_TESTS) +test_files = tests/xapian.scm -SCM_LOG_DRIVER = \ - $(builddir)/pre-inst-env \ - $(GUILE) --no-auto-compile -s \ - $(builddir)/build-aux/test-driver.scm +check-local: + $(builddir)/pre-inst-env $(GUILE_RUN64) $(test_files) # Distribution -EXTRA_DIST = $(TESTS) $(SOURCES) except.i xapian.i.in xapian-head.i xapian-headers.i +EXTRA_DIST = $(test_files) $(SOURCES) except.i xapian.i.in xapian-head.i xapian-headers.i %.asc: % $(GPG) --detach-sign --armor $< diff --git a/build-aux/test-driver.scm.in b/build-aux/test-driver.scm.in deleted file mode 100644 index 262d3a8..0000000 --- a/build-aux/test-driver.scm.in +++ /dev/null @@ -1,100 +0,0 @@ -;;; guile-xapian --- Guile bindings for Xapian -;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net> -;;; -;;; This file is part of guile-xapian. -;;; -;;; guile-xapian is free software: you can redistribute it and/or -;;; modify it under the terms of the GNU General Public License as -;;; published by the Free Software Foundation, either version 2 of the -;;; License, or (at your option) any later version. -;;; -;;; guile-xapian 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 -;;; General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with guile-xapian. If not, see -;;; <https://www.gnu.org/licenses/>. - -;;; Commentary: - -;; This is a better test driver for Guile's (srfi srfi-64). -;; -;; TODO: Improve Guile's test driver so this module won't be -;; necessary. - -;;; Code: - -(use-modules (ice-9 format) - (ice-9 getopt-long) - (ice-9 match) - (srfi srfi-26) - (srfi srfi-64)) - -;; Currently, only log-file and trs-file are understood. Everything -;; else is ignored. -(define %options - '((test-name (value #t)) - (log-file (value #t)) - (trs-file (value #t)) - (color-tests (value #t)) - (expect-failure (value #t)) - (enable-hard-errors (value #t)))) - -(define (color code str color?) - (if color? - (format #f "~a[~am~a~a[0m" #\esc code str #\esc) - str)) - -(define red (cut color 31 <> <>)) -(define green (cut color 32 <> <>)) -(define magenta (cut color 35 <> <>)) - -(define (my-gnu-runner log-port trs-port color?) - (let ((runner (test-runner-null))) - (test-runner-on-group-begin! runner - (lambda (runner suite-name count) - (format #t (magenta "%%%% ~a~%" color?) suite-name))) - (test-runner-on-group-end! runner - (lambda _ - (newline))) - (test-runner-on-test-end! runner - (lambda (runner) - (let ((name (test-runner-test-name runner)) - (result (string-upcase - (symbol->string (test-result-kind runner)))) - (result-alist (test-result-alist runner))) - (format trs-port ":test-result: ~a ~a~%" result name) - (format #t "~a ~a~%" - (case (test-result-kind runner) - ((pass) (green result color?)) - (else (red result color?))) - name) - (format log-port "~a ~a~%" result name) - ;; If test did not pass, print details. - (unless (eq? (test-result-kind runner) 'pass) - (let* ((expected-value (match (assq-ref result-alist 'source-form) - (('test-assert _ ...) #t) - (_ (assq-ref result-alist 'expected-value)))) - (log-output - (format #f "~a:~a~%expected: ~s~%actual: ~s~%" - (assq-ref result-alist 'source-file) - (assq-ref result-alist 'source-line) - expected-value - (assq-ref result-alist 'actual-value)))) - (display log-output log-port) - (display log-output (current-error-port))))))) - runner)) - -(let ((opts (getopt-long (command-line) %options))) - (call-with-output-file (string-append "@abs_top_builddir@/" - (option-ref opts 'log-file #f)) - (lambda (log-port) - (call-with-output-file (option-ref opts 'trs-file #f) - (lambda (trs-port) - (chdir "@abs_top_srcdir@") - (test-with-runner (my-gnu-runner log-port trs-port - (string=? (option-ref opts 'color-tests "yes") - "yes")) - (load-from-path (option-ref opts 'test-name #f)))))))) diff --git a/configure.ac b/configure.ac index 5a458e2..07e5b57 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ dnl guile-xapian --- Guile bindings for Xapian -dnl Copyright © 2020–2024 Arun Isaac <arunisaac@systemreboot.net> +dnl Copyright © 2020–2024, 2026 Arun Isaac <arunisaac@systemreboot.net> dnl dnl This file is part of guile-xapian. dnl @@ -18,7 +18,7 @@ dnl along with guile-xapian. If not, see dnl <https://www.gnu.org/licenses/>. AC_INIT([guile-xapian], [0.4.0]) -AM_INIT_AUTOMAKE([color-tests -Wall -Wno-portability foreign check-news no-dist-gzip dist-lzip]) +AM_INIT_AUTOMAKE([-Wall -Wno-portability foreign check-news no-dist-gzip dist-lzip]) AM_SILENT_RULES([yes]) LT_INIT @@ -33,6 +33,9 @@ GUILE_MODULE_REQUIRED([htmlprag]) PKG_CHECK_MODULES([XAPIAN], [xapian-core]) PKG_CHECK_MODULES([ZLIB], [zlib]) +# For tests +AC_PATH_PROG([GUILE_RUN64], [guile-run64]) + # To build the website AC_PATH_PROG([EMACS], [emacs]) @@ -45,5 +48,4 @@ AC_SUBST([SWIG_FLAGS], [$(PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 pkg-config --cflags x AC_CONFIG_FILES([Makefile]) AC_CONFIG_FILES([pre-inst-env], [chmod +x pre-inst-env]) -AC_CONFIG_FILES([build-aux/test-driver.scm]) AC_OUTPUT |
