Skip to content

Commit

Permalink
test-release.sh: Defer test errors until the end
Browse files Browse the repository at this point in the history
This makes the script run to the end and produce tarballs even on test
failures, and then highlights any errors afterwards.

(I first tried just storing the errors in a global variable, but that
didn't work as the "test_llvmCore" function invocation is actually
running as a sub-shell.)

Differential Revision: http://reviews.llvm.org/D11478

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@243116 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
zmodem committed Jul 24, 2015
1 parent 15e1e7f commit b8f373e
Showing 1 changed file with 27 additions and 4 deletions.
31 changes: 27 additions & 4 deletions utils/release/test-release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,16 @@ if [ $RC != "final" ]; then
fi
Package=$Package-$Triple

# Errors to be highlighted at the end are written to this file.
echo -n > $LogDir/deferred_errors.log

function deferred_error() {
Phase="$1"
Flavor="$2"
Msg="$3"
echo "[${Flavor} Phase${Phase}] ${Msg}" | tee -a $LogDir/deferred_errors.log
}

# Make sure that a required program is available
function check_program_exists() {
local program="$1"
Expand Down Expand Up @@ -367,13 +377,17 @@ function test_llvmCore() {
ObjDir="$3"

cd $ObjDir
${MAKE} -j $NumJobs -k check-all \
2>&1 | tee $LogDir/llvm.check-Phase$Phase-$Flavor.log
if ! ( ${MAKE} -j $NumJobs -k check-all \
2>&1 | tee $LogDir/llvm.check-Phase$Phase-$Flavor.log ) ; then
deferred_error $Phase $Flavor "check-all failed"
fi

if [ "$use_autoconf" = "yes" ]; then
# In the cmake build, unit tests are run as part of check-all.
${MAKE} -k unittests \
2>&1 | tee $LogDir/llvm.unittests-Phase$Phase-$Flavor.log
if ! ( ${MAKE} -k unittests 2>&1 | \
tee $LogDir/llvm.unittests-Phase$Phase-$Flavor.log ) ; then
deferred_error $Phase $Flavor "unittests failed"
fi
fi

cd $BuildDir
Expand Down Expand Up @@ -538,4 +552,13 @@ else
echo "### Package: $Package.tar.xz"
fi
echo "### Logs: $LogDir"

echo "### Errors:"
if [ -s "$LogDir/deferred_errors.log" ]; then
cat "$LogDir/deferred_errors.log"
exit 1
else
echo "None."
fi

exit 0

0 comments on commit b8f373e

Please sign in to comment.