• [gentoo-dev] [PATCH v2 1/3] ruby-ng.eclass: allow non-fatal use of test

    From Sam James@21:1/5 to All on Sun Mar 19 00:20:01 2023
    die -n will make die become non-fatal if run under 'nonfatal',
    this is useful if e.g. need to do cleanup.

    For example, in an ebuild, I need to setup a database, run tests,
    then always cleanup, which looks like:
    ```
    db_setup
    nonfatal each_fakegem_test || tests_failed=1
    db_cleanup

    if [[ ${tests_failed} == 1 ]] ; then
    die "Tests failed! Please see ..."
    fi
    ```

    Just like we do with e.g. virtualx. This also brings us into line
    with the Python eclasses.

    Signed-off-by: Sam James <sam@gentoo.org>
    ---
    eclass/ruby-ng.eclass | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/eclass/ruby-ng.eclass b/eclass/ruby-ng.eclass
    index 67c22d518a313..aa8a15170cf80 100644
    --- a/eclass/ruby-ng.eclass
    +++ b/eclass/ruby-ng.eclass
    @@ -721,7 +721,7 @@ ruby-ng_rspec() {
    ;;
    esac

    - ${RUBY} -S rspec-${version} ${rspec_params} ${files} || die "rspec failed"
    + ${RUBY} -S rspec-${version} ${rspec_params} ${files} || die -n "rspec failed"
    }

    # @FUNCTION: ruby-ng_cucumber
    @@ -754,7 +754,7 @@ ruby-ng_cucumber() {
    ;;
    esac

    - CUCUMBER_PUBLISH_QUIET=true ${RUBY} -S cucumber ${cucumber_params} "$@" || die "cucumber failed"
    + CUCUMBER_PUBLISH_QUIET=true ${RUBY} -S cucumber ${cucumber_params} "$@" || die -n "cucumber failed"
    }

    # @FUNCTION: ruby-ng_testrb-2
    --
    2.40.0

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Sam James@21:1/5 to All on Sun Mar 19 00:20:01 2023
    die -n will make die become non-fatal if run under 'nonfatal',
    this is useful if e.g. need to do cleanup.

    For example, in an ebuild, I need to setup a database, run tests,
    then always cleanup, which looks like:
    ```
    db_setup
    nonfatal each_fakegem_test || tests_failed=1
    db_cleanup

    if [[ ${tests_failed} == 1 ]] ; then
    die "Tests failed! Please see ..."
    fi
    ```

    Just like we do with e.g. virtualx. This also brings us into line
    with the Python eclasses.

    Signed-off-by: Sam James <sam@gentoo.org>
    ---
    eclass/ruby-fakegem.eclass | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/eclass/ruby-fakegem.eclass b/eclass/ruby-fakegem.eclass
    index 8cf5dd70f8646..9ef5e1f098d11 100644
    --- a/eclass/ruby-fakegem.eclass
    +++ b/eclass/ruby-fakegem.eclass
    @@ -1,4 +1,4 @@
    -# Copyright 1999-2022 Gentoo Authors
    +# Copyright 1999-2023 Gentoo Authors
    # Distributed under the terms of the GNU General Public License v2

    # @ECLASS: ruby-fakegem.eclass
    @@ -552,7 +552,7 @@ each_fakegem_test() {

    case ${RUBY_FAKEGEM_RECIPE_TEST} in
    rake)
    - MT_NO_PLUGINS=true ${RUBY} --disable=did_you_mean -S rake ${RUBY_FAKEGEM_TASK_TEST} || die "tests failed"
    + MT_NO_PLUGINS=true ${RUBY} --disable=did_you_mean -S rake ${RUBY_FAKEGEM_TASK_TEST} || die -n "tests failed"
    ;;
    rspec)
    RSPEC_VERSION=2 ruby-ng_rspec
    --
    2.40.0

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Sam James@21:1/5 to All on Sun Mar 19 00:20:01 2023
    We already inherit the eqawarn eclass and use it elsewhere
    in this eclass, so it's available & this then fits the rest
    of our use.

    Signed-off-by: Sam James <sam@gentoo.org>
    ---
    eclass/ruby-ng.eclass | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/eclass/ruby-ng.eclass b/eclass/ruby-ng.eclass
    index aa8a15170cf80..f85a933f81d97 100644
    --- a/eclass/ruby-ng.eclass
    +++ b/eclass/ruby-ng.eclass
    @@ -699,7 +699,7 @@ ruby-ng_rspec() {
    fi

    if [[ "${DEPEND}${BDEPEND}" != *"dev-ruby/rspec"* ]]; then
    - ewarn "Missing test dependency dev-ruby/rspec"
    + eqawarn "Missing test dependency dev-ruby/rspec"
    fi

    local rspec_params=
    --
    2.40.0

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)