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>master
parent
8a8fa82e72
commit
facc0a96a1
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
Reference in New Issue