M doc/guix.texi => doc/guix.texi +4 -2
@@ 8746,8 8746,10 @@ The phase runs @code{ninja} to build the package in parallel by default, but
this can be changed with @code{#:parallel-build?}.
@item check
-The phase runs @code{ninja} with the target specified in @code{#:test-target},
-which is @code{"test"} by default.
+The phase runs @samp{meson test} with a base set of options that cannot
+be overridden. This base set of options can be extended via the
+@code{#:test-options} argument, for example to select or skip a specific
+test suite.
@item install
The phase runs @code{ninja install} and can not be changed.
M guix/build-system/meson.scm => guix/build-system/meson.scm +6 -6
@@ 169,7 169,7 @@ TRIPLET."
(search-paths '())
(build-type "debugoptimized")
(tests? #t)
- (test-target "test")
+ (test-options ''())
(glib-or-gtk? #f)
(parallel-build? #t)
(parallel-tests? #f)
@@ 218,7 218,7 @@ has a 'meson.build' file."
configure-flags)
#:build-type #$build-type
#:tests? #$tests?
- #:test-target #$test-target
+ #:test-options #$(sexp->gexp test-options)
#:parallel-build? #$parallel-build?
#:parallel-tests? #$parallel-tests?
#:validate-runpath? #$validate-runpath?
@@ 251,7 251,7 @@ has a 'meson.build' file."
(build-type "debugoptimized")
(tests? #f)
- (test-target "test")
+ (test-options ''())
(glib-or-gtk? #f)
(parallel-build? #t)
(parallel-tests? #f)
@@ 281,7 281,7 @@ SOURCE has a 'meson.build' file."
(if (null? target-inputs)
(input-tuples->gexp host-inputs)
#~(append #$(input-tuples->gexp host-inputs)
- #+(input-tuples->gexp target-inputs))))
+ #+(input-tuples->gexp target-inputs))))
(define builder
(with-imported-modules imported-modules
#~(begin
@@ 306,7 306,7 @@ SOURCE has a 'meson.build' file."
#:native-inputs #+(input-tuples->gexp build-inputs)
#:search-paths '#$(sexp->gexp
(map search-path-specification->sexp
- search-paths))
+ search-paths))
#:native-search-paths '#$(sexp->gexp
(map search-path-specification->sexp
native-search-paths))
@@ 318,7 318,7 @@ SOURCE has a 'meson.build' file."
configure-flags))
#:build-type #$build-type
#:tests? #$tests?
- #:test-target #$test-target
+ #:test-options #$(sexp->gexp test-options)
#:parallel-build? #$parallel-build?
#:parallel-tests? #$parallel-tests?
#:validate-runpath? #$validate-runpath?
M guix/build/meson-build-system.scm => guix/build/meson-build-system.scm +10 -8
@@ 2,6 2,7 @@
;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ 63,16 64,17 @@
(number->string (parallel-job-count))
"1")))
-(define* (check #:key test-target parallel-tests? tests?
+(define* (check #:key tests? test-options parallel-tests?
#:allow-other-keys)
- (setenv "MESON_TESTTHREADS"
- (if parallel-tests?
- (number->string (parallel-job-count))
- "1"))
(if tests?
- (invoke "ninja" test-target)
- (format #t "test suite not run~%"))
- #t)
+ (begin
+ (setenv "MESON_TESTTHREADS"
+ (if parallel-tests?
+ (number->string (parallel-job-count))
+ "1"))
+ ;; Always provide "-t 0" to disable the 30 s default timeout.
+ (apply invoke "meson" "test" "--print-errorlogs" "-t" "0" test-options))
+ (format #t "test suite not run~%")))
(define* (install #:rest args)
(invoke "ninja" "install"))