From cefb20984f207880e63e78e616e84ada9befed22 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Fri, 9 Aug 2019 02:50:46 +0530 Subject: tests: Run tests with correct path. * build-aux/test-driver.scm: Rename to build-aux/test-driver.scm.in. * build-aux/test-driver.scm.in: Specify log file as an absolute path. Change to top level source directory before running tests. * configure.ac: Generate test-driver.scm. * Makefile.am (EXTRA_DIST): Unregister build-aux/test-driver.scm. Register build-aux/test-driver.scm.in. --- Makefile.am | 2 +- build-aux/test-driver.scm | 51 ------------------------------------------- build-aux/test-driver.scm.in | 52 ++++++++++++++++++++++++++++++++++++++++++++ configure.ac | 1 + 4 files changed, 54 insertions(+), 52 deletions(-) delete mode 100644 build-aux/test-driver.scm create mode 100644 build-aux/test-driver.scm.in diff --git a/Makefile.am b/Makefile.am index 3dee68b..c4bf107 100644 --- a/Makefile.am +++ b/Makefile.am @@ -65,9 +65,9 @@ info_TEXINFOS = doc/guile-email.texi EXTRA_DIST += \ $(TESTS) \ - build-aux/test-driver.scm \ tests/multipart-email-with-a-8bit-encoding-and-non-utf8-charset-part \ tests/email-with-8bit-encoding-and-non-utf8-charset \ + build-aux/test-driver.scm.in \ COPYING \ README.org diff --git a/build-aux/test-driver.scm b/build-aux/test-driver.scm deleted file mode 100644 index 0daad1d..0000000 --- a/build-aux/test-driver.scm +++ /dev/null @@ -1,51 +0,0 @@ -;;; guile-email --- Guile email parser -;;; Copyright © 2018 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 getopt-long) - (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 (my-gnu-runner trs-port) - (let ((runner (test-runner-simple))) - (test-runner-on-test-end! runner - (lambda (runner) - (format trs-port ":test-result: ~A ~A~%" - (string-upcase - (symbol->string - (test-result-kind runner))) - (test-runner-test-name runner)))) - runner)) - - -(let ((opts (getopt-long (command-line) %options))) - (set! test-log-to-file (option-ref opts 'log-file #f)) - (call-with-output-file (option-ref opts 'trs-file #f) - (lambda (trs-port) - (test-with-runner (my-gnu-runner trs-port) - (load-from-path (option-ref opts 'test-name #f)))))) diff --git a/build-aux/test-driver.scm.in b/build-aux/test-driver.scm.in new file mode 100644 index 0000000..71aa042 --- /dev/null +++ b/build-aux/test-driver.scm.in @@ -0,0 +1,52 @@ +;;; guile-email --- Guile email parser +;;; Copyright © 2018 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 getopt-long) + (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 (my-gnu-runner trs-port) + (let ((runner (test-runner-simple))) + (test-runner-on-test-end! runner + (lambda (runner) + (format trs-port ":test-result: ~A ~A~%" + (string-upcase + (symbol->string + (test-result-kind runner))) + (test-runner-test-name runner)))) + runner)) + +(let ((opts (getopt-long (command-line) %options))) + (set! test-log-to-file (string-append "@abs_top_builddir@/" + (option-ref opts 'log-file #f))) + (call-with-output-file (option-ref opts 'trs-file #f) + (lambda (trs-port) + (chdir "@abs_top_srcdir@") + (test-with-runner (my-gnu-runner trs-port) + (load-from-path (option-ref opts 'test-name #f)))))) diff --git a/configure.ac b/configure.ac index ce3ff0c..5de8c76 100644 --- a/configure.ac +++ b/configure.ac @@ -30,4 +30,5 @@ fi 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 -- cgit v1.2.3