aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2018-02-11 00:51:26 -0500
committerArun Isaac <arunisaac@systemreboot.net>2018-04-20 00:49:53 +0530
commitfacc0a96a171631bd346b37ffd47bcda6d82e892 (patch)
treef95b25ab25d92227ae28deb55b4dc1333474c91a
parent8a8fa82e72f55526e8aae85809c8655f5ff26690 (diff)
downloadgnu-guix-facc0a96a171631bd346b37ffd47bcda6d82e892.tar
gnu-guix-facc0a96a171631bd346b37ffd47bcda6d82e892.tar.gz
build-system: emacs: Add improved check phase.
* guix/build-system/emacs.scm (emacs-build): Add #:test-command keyword argument. Remove #:configure-flags and #:test-target keyword arguments. * guix/build/emacs-build-system.scm (check): New procedure. (%standard-phases): Register check phase after the build phase. Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
-rw-r--r--guix/build-system/emacs.scm6
-rw-r--r--guix/build/emacs-build-system.scm19
2 files changed, 21 insertions, 4 deletions
diff --git a/guix/build-system/emacs.scm b/guix/build-system/emacs.scm
index d9f1a8d289..ef6d1b3397 100644
--- a/guix/build-system/emacs.scm
+++ b/guix/build-system/emacs.scm
@@ -84,8 +84,7 @@
#:key source
(tests? #f)
(parallel-tests? #t)
- (test-target "test")
- (configure-flags ''())
+ (test-command ''("make" "check"))
(phases '(@ (guix build emacs-build-system)
%standard-phases))
(outputs '("out"))
@@ -110,9 +109,8 @@
source)
(source
source))
- #:configure-flags ,configure-flags
#:system ,system
- #:test-target ,test-target
+ #:test-command ,test-command
#:tests? ,tests?
#:phases ,phases
#:outputs %outputs
diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm
index da17eb17b1..094b04750a 100644
--- a/guix/build/emacs-build-system.scm
+++ b/guix/build/emacs-build-system.scm
@@ -158,6 +158,24 @@ store in '.el' files."
(substitute-program-names))))
#t))
+(define* (check #:key tests? (test-command '("make" "check"))
+ (parallel-tests? #t) #:allow-other-keys)
+ "Run the tests by invoking TEST-COMMAND.
+
+When TEST-COMMAND uses make and PARALLEL-TESTS is #t, the tests are run in
+parallel. PARALLEL-TESTS? is ignored when using a non-make TEST-COMMAND."
+ (match-let (((test-program . args) test-command))
+ (let ((using-make? (string=? test-program "make")))
+ (if tests?
+ (apply invoke test-program
+ `(,@args
+ ,@(if (and using-make? parallel-tests?)
+ `("-j" ,(number->string (parallel-job-count)))
+ '())))
+ (begin
+ (format #t "test suite not run~%")
+ #t)))))
+
(define* (install #:key outputs
(include %default-include)
(exclude %default-exclude)
@@ -256,6 +274,7 @@ second hyphen. This corresponds to 'name-version' as used in ELPA packages."
;; Move the build phase after install: the .el files are byte compiled
;; directly in the store.
(delete 'build)
+ (replace 'check check)
(replace 'install install)
(add-after 'install 'build build)
(add-after 'install 'make-autoloads make-autoloads)