guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

202/227: build: meson: Replace the 'test-target' argument by 'test-optio


From: guix-commits
Subject: 202/227: build: meson: Replace the 'test-target' argument by 'test-options'.
Date: Thu, 11 Nov 2021 12:30:48 -0500 (EST)

apteryx pushed a commit to branch core-updates-frozen
in repository guix.

commit dfcc96d8f48716ae5aefb383c58b153d5bcb407c
Author: Maxim Cournoyer <maxim.cournoyer@gmail.com>
AuthorDate: Wed Nov 3 12:07:22 2021 -0400

    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.
---
 doc/guix.texi                     |  6 ++++--
 guix/build-system/meson.scm       | 12 ++++++------
 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 0234af4..d529058 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 198aa08..ba7441a 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 cc2ba83..61ce453 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"))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]