Closes: https://bugs.gentoo.org/945081
Signed-off-by: Michał Górny <[email protected]>
---
eclass/cmake.eclass | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass
index 8079a5cb037b..9b05f29139a5 100644
--- a/eclass/cmake.eclass
+++ b/eclass/cmake.eclass
@@ -681,6 +681,19 @@ cmake-utils_src_make() {
die "cmake-utils_src_make is banned. Use cmake_build instead"
}
+# @ECLASS_VARIABLE: CTEST_JOBS
+# @USER_VARIABLE
+# @DESCRIPTION:
+# Maximum number of CTest jobs to run in parallel. If unset, the value
+# will be determined from make options.
+
+# @ECLASS_VARIABLE: CTEST_LOADAVG
+# @USER_VARIABLE
+# @DESCRIPTION:
+# Maximum load, over which no new jobs will be started by CTest. Note
+# that unlike make, CTest will not start *any* jobs if the load
+# is exceeded. If unset, the value will be determined from make options.
+
# @FUNCTION: cmake_src_test
# @DESCRIPTION:
# Function for testing the package. Automatically detects the build type.
@@ -694,8 +707,9 @@ cmake_src_test() {
[[ -n ${TEST_VERBOSE} ]] && myctestargs+=( --extra-verbose
--output-on-failure )
[[ -n ${CMAKE_SKIP_TESTS} ]] && myctestargs+=( -E '('$( IFS='|'; echo
"${CMAKE_SKIP_TESTS[*]}")')' )
- set -- ctest -j "$(makeopts_jobs "${MAKEOPTS}" 999)" \
- --test-load "$(makeopts_loadavg)" "${myctestargs[@]}" "$@"
+ set -- ctest -j "${CTEST_JOBS:-$(makeopts_jobs "${MAKEOPTS}" 999)}" \
+ --test-load "${CTEST_LOADAVG:-$(makeopts_loadavg)}" \
+ "${myctestargs[@]}" "$@"
echo "$@" >&2
if "$@" ; then
einfo "Tests succeeded."
--
2.47.1