]> granicus.if.org Git - llvm/commitdiff
Merging r243116:
authorHans Wennborg <hans@hanshq.net>
Fri, 24 Jul 2015 16:19:43 +0000 (16:19 +0000)
committerHans Wennborg <hans@hanshq.net>
Fri, 24 Jul 2015 16:19:43 +0000 (16:19 +0000)
------------------------------------------------------------------------
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

utils/release/test-release.sh

index fcad92b523dcb1b4b869cd5fec16966d8be20b2e..6cf64a39e13f4608783f001ac4b8682ba074298f 100755 (executable)
@@ -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