summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorWilliam Hubbs <williamh@gentoo.org>2019-06-02 11:29:07 -0500
committerWilliam Hubbs <williamh@gentoo.org>2019-06-02 11:47:11 -0500
commitfe02c66d4b7638575778dcb7cbeb09c42a83c764 (patch)
tree5f6c1bb4fbfafd99dce17caac03ec2d6f22f455f /eclass
parentdev-lang/crystal: drop old (diff)
downloadgentoo-fe02c66d4b7638575778dcb7cbeb09c42a83c764.tar.gz
gentoo-fe02c66d4b7638575778dcb7cbeb09c42a83c764.tar.bz2
gentoo-fe02c66d4b7638575778dcb7cbeb09c42a83c764.zip
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@gentoo.org>
Diffstat (limited to 'eclass')
-rw-r--r--eclass/meson.eclass25
1 files changed, 23 insertions, 2 deletions
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