Signed-off-by: Hans de Graaff <gra...@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
-- 
2.39.2


Reply via email to