diff options
author | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2021-11-03 12:07:22 -0400 |
---|---|---|
committer | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2021-11-11 12:18:32 -0500 |
commit | dfcc96d8f48716ae5aefb383c58b153d5bcb407c (patch) | |
tree | bd78a84d83ef6be838bac8d2910087f6cef8ff8a | |
parent | 3e026fc2b1bd65ead774733fbc5852794d96bf43 (diff) |
build: meson: Replace the 'test-target' argument by 'test-options'.
This change is motivated by the need to disable the default 30 seconds timeout
that Meson uses (see: https://gitlab.gnome.org/GNOME/glib/-/issues/2522), and
also by desire to specify extra options to run the check phase without having
to override it.
* guix/build-system/meson.scm (meson-build) <test-target>: Replace argument
with...
<test-options>: ... this one.
* guix/build/meson-build-system.scm (check): Invoke 'meson test' instead of
'ninja test-target', as the former is configurable via options.
* doc/guix.texi (Build Systems) <meson-build-system>: Update doc.
-rw-r--r-- | doc/guix.texi | 6 | ||||
-rw-r--r-- | guix/build-system/meson.scm | 12 | ||||
-rw-r--r-- | guix/build/meson-build-system.scm | 18 |
3 files changed, 20 insertions, 16 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index 0234af41e1..d5290585e0 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -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. diff --git a/guix/build-system/meson.scm b/guix/build-system/meson.scm index 198aa08729..ba7441a3eb 100644 --- a/guix/build-system/meson.scm +++ b/guix/build-system/meson.scm @@ -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? diff --git a/guix/build/meson-build-system.scm b/guix/build/meson-build-system.scm index cc2ba83889..61ce45367d 100644 --- a/guix/build/meson-build-system.scm +++ b/guix/build/meson-build-system.scm @@ -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")) |