commit: d953ea8c71c24e2af21db0554ed18f7c17f13162
Author: Hans de Graaff <graaff <AT> gentoo <DOT> org>
AuthorDate: Sat Mar 25 08:14:42 2023 +0000
Commit: Hans de Graaff <graaff <AT> gentoo <DOT> org>
CommitDate: Sun Mar 26 06:29:43 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d953ea8c
eclass/ruby-fakegem.eclass: add support for sus test runner
Signed-off-by: Hans de Graaff <graaff <AT> gentoo.org>
eclass/ruby-fakegem.eclass | 9 +++++++++
eclass/ruby-ng.eclass | 25 +++++++++++++++++++++++++
2 files changed, 34 insertions(+)
diff --git a/eclass/ruby-fakegem.eclass b/eclass/ruby-fakegem.eclass
index 08e3ccf588ac..4ad1d8eca683 100644
--- a/eclass/ruby-fakegem.eclass
+++ b/eclass/ruby-fakegem.eclass
@@ -44,6 +44,7 @@ RUBY_FAKEGEM_TASK_DOC="${RUBY_FAKEGEM_TASK_DOC-rdoc}"
# - rspec3 (calls ruby-ng_rspec, adds dev-ruby/rspec:3 to the dependencies)
# - cucumber (calls ruby-ng_cucumber, adds dev-util/cucumber to the
# dependencies)
+# - sus (calls ruby-ng_sus, adds dev-ruby/sus to the dependencies)
# - none
RUBY_FAKEGEM_RECIPE_TEST="${RUBY_FAKEGEM_RECIPE_TEST-rake}"
@@ -193,6 +194,11 @@ case ${RUBY_FAKEGEM_RECIPE_TEST} in
RESTRICT+=" !test? ( test )"
ruby_add_bdepend "test? ( dev-util/cucumber )"
;;
+ sus)
+ IUSE+=" test"
+ RESTRICT+=" !test? ( test )"
+ ruby_add_bdepend "test? ( dev-ruby/sus )"
+ ;;
none)
;;
*)
@@ -566,6 +572,9 @@ each_fakegem_test() {
cucumber)
ruby-ng_cucumber
;;
+ sus)
+ ruby-ng_sus
+ ;;
none)
ewarn "each_fakegem_test called, but
\${RUBY_FAKEGEM_RECIPE_TEST} is 'none'"
;;
diff --git a/eclass/ruby-ng.eclass b/eclass/ruby-ng.eclass
index f85a933f81d9..c273a431c5b1 100644
--- a/eclass/ruby-ng.eclass
+++ b/eclass/ruby-ng.eclass
@@ -757,6 +757,31 @@ ruby-ng_cucumber() {
CUCUMBER_PUBLISH_QUIET=true ${RUBY} -S cucumber ${cucumber_params} "$@"
|| die -n "cucumber failed"
}
+# @FUNCTION: ruby-ng_sus
+# @DESCRIPTION:
+# This is simply a wrapper around the sus-parallel command (executed by $RUBY})
+# which also respects TEST_VERBOSE and NOCOLOR environment variables.
+ruby-ng_sus() {
+ debug-print-function ${FUNCNAME} "${@}"
+
+ if [[ "${DEPEND}${BDEPEND}" != *"dev-ruby/sus"* ]]; then
+ ewarn "Missing test dependency dev-ruby/sus"
+ fi
+
+ local sus_params=
+
+ # sus has a --verbose argument but it does not seem to impact the
output (yet?)
+ case ${TEST_VERBOSE} in
+ 1|yes|true)
+ sus_params+=" --verbose"
+ ;;
+ *)
+ ;;
+ esac
+
+ ${RUBY} -S sus-parallel ${sus_params} "$@" || die -n "sus failed"
+}
+
# @FUNCTION: ruby-ng_testrb-2
# @DESCRIPTION:
# This is simply a replacement for the testrb command that load the test