summaryrefslogtreecommitdiff
path: root/eclass/meson.eclass
diff options
context:
space:
mode:
Diffstat (limited to 'eclass/meson.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