diff options
author | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2018-02-11 00:51:26 -0500 |
---|---|---|
committer | Arun Isaac <arunisaac@systemreboot.net> | 2018-04-20 00:49:53 +0530 |
commit | facc0a96a171631bd346b37ffd47bcda6d82e892 (patch) | |
tree | f95b25ab25d92227ae28deb55b4dc1333474c91a | |
parent | 8a8fa82e72f55526e8aae85809c8655f5ff26690 (diff) | |
download | gnu-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.scm | 6 | ||||
-rw-r--r-- | guix/build/emacs-build-system.scm | 19 |
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) |