Merging r243116:

------------------------------------------------------------------------
r243116 | hans | 2015-07-24 09:16:09 -0700 (Fri, 24 Jul 2015) | 10 lines

test-release.sh: Defer test errors until the end

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/branches/release_37@243117 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Hans Wennborg committed 2015-07-24 16:19:43 +00:00
1 parent 9dd0401722
commit e30be6c5d5
1 file changed
+27 -4
+27 -4
View File
@@ -192,6 +192,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"
@@ -351,13 +361,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
@@ -522,4 +536,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