From fe02c66d4b7638575778dcb7cbeb09c42a83c764 Mon Sep 17 00:00:00 2001 From: William Hubbs Date: Sun, 2 Jun 2019 11:29:07 -0500 Subject: 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 --- eclass/meson.eclass | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'eclass') diff --git a/eclass/meson.eclass b/eclass/meson.eclass index 65b09932a7ac..b9562376b868 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 -- cgit v1.2.3-65-gdbad