summaryrefslogtreecommitdiff
path: root/utils/release/test-release.sh
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2015-07-24 16:16:09 +0000
committerHans Wennborg <hans@hanshq.net>2015-07-24 16:16:09 +0000
commitb8f373eb6082ea034fb98c861c5c632533ee2d45 (patch)
treeb51d5048de63ab93a9f6cdfd941b495e34107c25 /utils/release/test-release.sh
parent15e1e7f179e9740321df5cd9af21db5777044d9f (diff)
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/trunk@243116 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/release/test-release.sh')
-rwxr-xr-xutils/release/test-release.sh31
1 files changed, 27 insertions, 4 deletions
diff --git a/utils/release/test-release.sh b/utils/release/test-release.sh
index c65aa762535..1a09f7bbc86 100755
--- a/utils/release/test-release.sh
+++ b/utils/release/test-release.sh
@@ -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"
@@ -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
@@ -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