From 429c7f1141f812d266cfd7d33a142871c21f8874 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Mon, 17 Sep 2018 20:12:59 -0700 Subject: ci: don't stop on failure Don't stop on test failures; run all the tests, even when a test fails. --- ci/test.ps1 | 5 ++++- ci/test.sh | 20 +++++++++++++------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/ci/test.ps1 b/ci/test.ps1 index 5f75c0b62..7a55bff79 100644 --- a/ci/test.ps1 +++ b/ci/test.ps1 @@ -7,6 +7,7 @@ $PSDefaultParameterValues['*:ErrorAction'] = 'Stop' $SourceDir = Split-Path (Split-Path (Get-Variable MyInvocation).Value.MyCommand.Path) $BuildDir = Get-Location +$Success = $true if ($Env:SKIP_TESTS) { exit } @@ -24,7 +25,7 @@ function run_test { Write-Host $TestCommand Invoke-Expression $TestCommand - if ($LastExitCode -ne 0) { [Environment]::Exit($LastExitCode) } + if ($LastExitCode -ne 0) { $Success = $false } } Write-Host "##############################################################################" @@ -67,3 +68,5 @@ if (-not $Env:SKIP_PROXY_TESTS) { taskkill /F /IM javaw.exe } + +if (-not $Success) { exit 1 } diff --git a/ci/test.sh b/ci/test.sh index 0f8fc8783..e50e6fa9e 100755 --- a/ci/test.sh +++ b/ci/test.sh @@ -11,6 +11,8 @@ BUILD_DIR=$(pwd) TMPDIR=${TMPDIR:-/tmp} USER=${USER:-$(whoami)} +SUCCESS=1 + VALGRIND="valgrind --leak-check=full --show-reachable=yes --error-exitcode=125 --num-callers=50 --suppressions=\"$SOURCE_DIR/libgit2_clar.supp\"" LEAKS="MallocStackLogging=1 MallocScribble=1 leaks -quiet -atExit -- nohup" @@ -30,11 +32,9 @@ cleanup() { echo "Done." } -die() { +failure() { echo "Test exited with code: $1" - - cleanup - exit $1 + SUCCESS=0 } # Ask ctest what it would run if we were to invoke it directly. This lets @@ -54,7 +54,7 @@ run_test() { RUNNER="$TEST_CMD" fi - eval $RUNNER || die $? + eval $RUNNER || failure } # Configure the test environment; run them early so that we're certain @@ -194,10 +194,16 @@ if [ -z "$SKIP_FUZZERS" ]; then echo "##############################################################################" for fuzzer in fuzzers/*_fuzzer; do - "${fuzzer}" "${SOURCE_DIR}/fuzzers/corpora/$(basename "${fuzzer%_fuzzer}")" || die $? + "${fuzzer}" "${SOURCE_DIR}/fuzzers/corpora/$(basename "${fuzzer%_fuzzer}")" || failure done fi -echo "Success." cleanup + +if [ "$SUCCESS" -ne "1" ]; then + echo "Some tests failed." + exit 1 +fi + +echo "Success." exit 0 -- cgit v1.2.1