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* (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 @@ | |||
|      (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 @@ version = \"" version "\" | |||
|     (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) | ||||
|  |  | |||
		Reference in a new issue