entrypoint: fix pausing after test failure

The --pause option for the entrypoint script is useful for interactive
debugging after a test failure, but the script was not pausing if the
test suite failed. Add code to explicitly handle test failures including
pausing.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
This commit is contained in:
John Mulligan 2020-02-03 14:32:48 -05:00 committed by Niels de Vos
parent 691cd8d99b
commit 7790594ee4
1 changed files with 11 additions and 1 deletions

View File

@ -51,6 +51,13 @@ while true ; do
esac esac
done done
test_failed() {
local pkg="$1"
echo "*** ERROR: ${pkg} tests failed"
pause_if_needed
return 1
}
test_pkg() { test_pkg() {
local pkg="$1" local pkg="$1"
if [[ "$TEST_PKG" && "$TEST_PKG" != "$pkg" ]]; then if [[ "$TEST_PKG" && "$TEST_PKG" != "$pkg" ]]; then
@ -67,7 +74,9 @@ test_pkg() {
fi fi
go test -v "${testargs[@]}" "./$pkg" go test -v "${testargs[@]}" "./$pkg"
ret=$?
grep -v "^mode: count" "$pkg.cover.out" >> "cover.out" grep -v "^mode: count" "$pkg.cover.out" >> "cover.out"
return ${ret}
} }
pre_all_tests() { pre_all_tests() {
@ -105,13 +114,14 @@ test_go_ceph() {
) )
pre_all_tests pre_all_tests
for pkg in "${pkgs[@]}"; do for pkg in "${pkgs[@]}"; do
test_pkg "$pkg" test_pkg "$pkg" || test_failed "$pkg"
done done
post_all_tests post_all_tests
} }
pause_if_needed() { pause_if_needed() {
if [[ ${PAUSE} = yes ]]; then if [[ ${PAUSE} = yes ]]; then
echo "*** pausing execution"
sleep infinity sleep infinity
fi fi
} }