commit:     fe02c66d4b7638575778dcb7cbeb09c42a83c764
Author:     William Hubbs <williamh <AT> gentoo <DOT> org>
AuthorDate: Sun Jun  2 16:29:07 2019 +0000
Commit:     William Hubbs <williamh <AT> gentoo <DOT> org>
CommitDate: Sun Jun  2 16:47:11 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fe02c66d

meson.eclass: fix tests

- use "meson test" to run tests instead of "eninja test"
- calculate --num-processes based on ninjaopts or makeopts in the "meson test"
  call.
- allow meson_src_test to accept arguments with the emesontestargs array
  or passed in the call like meson_src_configure

Closes: https://bugs.gentoo.org/680010
Signed-off-by: William Hubbs <williamh <AT> gentoo.org>

 eclass/meson.eclass | 25 +++++++++++++++++++++++--
 1 file changed, 23 insertions(+), 2 deletions(-)

diff --git a/eclass/meson.eclass b/eclass/meson.eclass
index 65b09932a7a..b9562376b86 100644
--- a/eclass/meson.eclass
+++ b/eclass/meson.eclass
@@ -41,7 +41,7 @@ esac
 
 if [[ -z ${_MESON_ECLASS} ]]; then
 
-inherit ninja-utils python-utils-r1 toolchain-funcs
+inherit multiprocessing ninja-utils python-utils-r1 toolchain-funcs
 
 fi
 
@@ -78,6 +78,12 @@ fi
 # Optional meson arguments as Bash array; this should be defined before
 # calling meson_src_configure.
 
+# @VARIABLE: emesontestargs
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# Optional meson test arguments as Bash array; this should be defined before
+# calling meson_src_test.
+
 
 read -d '' __MESON_ARRAY_PARSER <<"EOF"
 import shlex
@@ -246,12 +252,27 @@ meson_src_compile() {
 }
 
 # @FUNCTION: meson_src_test
+# @USAGE: [extra meson test arguments]
 # @DESCRIPTION:
 # This is the meson_src_test function.
 meson_src_test() {
        debug-print-function ${FUNCNAME} "$@"
 
-       eninja -C "${BUILD_DIR}" test
+       local mesontestargs=(
+               --verbose
+               -C "${BUILD_DIR}"
+               )
+       [[ -n ${NINJAOPTS} || -n ${MAKEOPTS} ]] &&
+               mesontestargs+=(
+                       --num-processes "$(makeopts_jobs 
${NINJAOPTS:-${MAKEOPTS}})"
+                       )
+
+       # Append additional arguments from ebuild
+       mesontestargs+=("${emesontestargs[@]}")
+
+       set -- meson test "${mesontestargs[@]}" "$@"
+       echo "$@" >&2
+       "$@" || die "tests failed"
 }
 
 # @FUNCTION: meson_src_install

Reply via email to