mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-23 21:17:11 -05:00
build-system/julia: Enable tests.
* guix/build-system/julia.scm (julia-build): Set tests? default to #t. * guix/build/julia-build-system.scm (check): Respect tests? and fix julia invocation. (%standard-phases): Add check phase after install. * doc/guix.texi (julia-build-system): Update accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
0f27a97c69
commit
a23b384f3f
3 changed files with 19 additions and 12 deletions
|
@ -7616,7 +7616,7 @@ implements the build procedure used by @uref{https://julialang.org/,
|
|||
julia} packages, which essentially is similar to running @samp{julia -e
|
||||
'using Pkg; Pkg.add(package)'} in an environment where
|
||||
@env{JULIA_LOAD_PATH} contains the paths to all Julia package inputs.
|
||||
Tests are run with @code{Pkg.test}.
|
||||
Tests are run by calling @code{/test/runtests.jl}.
|
||||
|
||||
Julia packages require the source @code{file-name} to be the real name of the
|
||||
package, correctly capitalized.
|
||||
|
|
|
@ -75,7 +75,7 @@ (define private-keywords
|
|||
|
||||
(define* (julia-build store name inputs
|
||||
#:key source
|
||||
(tests? #f)
|
||||
(tests? #t)
|
||||
(phases '(@ (guix build julia-build-system)
|
||||
%standard-phases))
|
||||
(outputs '("out"))
|
||||
|
|
|
@ -69,15 +69,22 @@ (define* (precompile #:key source inputs outputs #:allow-other-keys)
|
|||
(string-append "pushfirst!(DEPOT_PATH, pop!(DEPOT_PATH)); using " package)))
|
||||
#t)
|
||||
|
||||
(define* (check #:key source inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(package (strip-store-file-name source))
|
||||
(builddir (string-append out "/share/julia/")))
|
||||
;; With a patch, SOURCE_DATE_EPOCH is honored
|
||||
(setenv "SOURCE_DATE_EPOCH" "1")
|
||||
(setenv "JULIA_DEPOT_PATH" builddir)
|
||||
(setenv "JULIA_LOAD_PATH" (string-append builddir "packages/"))
|
||||
(invoke-julia (string-append "using Pkg;Pkg.test(\"" package "\")")))
|
||||
(define* (check #:key tests? source inputs outputs #:allow-other-keys)
|
||||
(when tests?
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(package (strip-store-file-name source))
|
||||
(builddir (string-append out "/share/julia/")))
|
||||
;; With a patch, SOURCE_DATE_EPOCH is honored
|
||||
(setenv "SOURCE_DATE_EPOCH" "1")
|
||||
(setenv "JULIA_DEPOT_PATH" builddir)
|
||||
(setenv "JULIA_LOAD_PATH"
|
||||
(string-append builddir "packages/" ":"
|
||||
(or (getenv "JULIA_LOAD_PATH")
|
||||
"")))
|
||||
(setenv "HOME" "/tmp")
|
||||
(invoke "julia"
|
||||
(string-append builddir "packages/"
|
||||
package "/test/runtests.jl"))))
|
||||
#t)
|
||||
|
||||
(define (julia-create-package-toml outputs source
|
||||
|
@ -112,7 +119,7 @@ (define %standard-phases
|
|||
(delete 'check) ; tests must be run after installation
|
||||
(replace 'install install)
|
||||
(add-after 'install 'precompile precompile)
|
||||
;; (add-after 'install 'check check)
|
||||
(add-after 'install 'check check)
|
||||
;; TODO: In the future we could add a "system-image-generation" phase
|
||||
;; where we use PackageCompiler.jl to speed up package loading times
|
||||
(delete 'configure)
|
||||
|
|
Loading…
Reference in a new issue