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>
This commit is contained in:
Maxim Cournoyer 2018-02-11 00:51:26 -05:00 committed by Arun Isaac
parent 8a8fa82e72
commit facc0a96a1
No known key found for this signature in database
GPG Key ID: 2E25EE8B61802BB3
2 changed files with 21 additions and 4 deletions

View File

@ -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

View File

@ -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)