[PATCH v2] test: report summary even when aborting

Tomi Ollila tomi.ollila at iki.fi
Sun May 26 14:35:01 PDT 2019


On Sun, May 26 2019, Daniel Kahn Gillmor wrote:

> In certain cases of test suite failure, the summary report was not
> being printed.  In particular, any failure on the parallel test suite,
> and any aborted test in the serialized test suite would end up hiding
> the summary.
>
> It's better to always show the summary where we can (while preserving
> the return code).  If we do abort due to this high-level failure,
> though, we should also announce to the user that we're doing so as
> close to the end of the process as possible, to make it easier to find
> the problem.
>
> Signed-off-by: Daniel Kahn Gillmor <dkg at fifthhorseman.net>

LGTM.

Tomi


> ---
>  test/notmuch-test | 14 +++++++++++---
>  1 file changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/test/notmuch-test b/test/notmuch-test
> index 50ed8721..b58fd3b3 100755
> --- a/test/notmuch-test
> +++ b/test/notmuch-test
> @@ -45,6 +45,8 @@ else
>  fi
>  
>  trap 'e=$?; kill $!; exit $e' HUP INT TERM
> +
> +META_FAILURE=
>  # Run the tests
>  if test -z "$NOTMUCH_TEST_SERIALIZE" && command -v parallel >/dev/null ; then
>      test -t 1 && export COLORS_WITHOUT_TTY=t || :
> @@ -57,8 +59,7 @@ if test -z "$NOTMUCH_TEST_SERIALIZE" && command -v parallel >/dev/null ; then
>      fi
>      RES=$?
>      if [[ $RES != 0 ]]; then
> -        echo "parallel test suite returned error code $RES"
> -        exit $RES
> +        META_FAILURE="parallel test suite returned error code $RES"
>      fi
>  else
>      for test in $TESTS; do
> @@ -69,7 +70,8 @@ else
>          RES=$?
>          testname=$(basename $test .sh)
>          if [[ $RES != 0 && ! -e "$NOTMUCH_BUILDDIR/test/test-results/$testname" ]]; then
> -            exit $RES
> +            META_FAILURE="Aborting on $testname (returned $RES)"
> +            break
>          fi
>      done
>  fi
> @@ -79,6 +81,12 @@ trap - HUP INT TERM
>  echo
>  $NOTMUCH_SRCDIR/test/aggregate-results.sh $NOTMUCH_BUILDDIR/test/test-results/*
>  ev=$?
> +if [ -n "$META_FAILURE" ]; then
> +    printf 'ERROR: %s\n' "$META_FAILURE"
> +    if [ $ev = 0 ]; then
> +        ev=$RES
> +    fi
> +fi
>  
>  # Clean up
>  rm -rf $NOTMUCH_BUILDDIR/test/test-results
> -- 
> 2.20.1
>
> _______________________________________________
> notmuch mailing list
> notmuch at notmuchmail.org
> https://notmuchmail.org/mailman/listinfo/notmuch


More information about the notmuch mailing list