[PATCH] D11478: test-release.sh: Defer test errors until the end

Hans Wennborg hans at chromium.org
Thu Jul 23 15:40:10 PDT 2015


hans created this revision.
hans added reviewers: dsanders, rengolin, benpope81.
hans added a subscriber: llvm-commits.

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.)

http://reviews.llvm.org/D11478

Files:
  utils/release/test-release.sh

Index: utils/release/test-release.sh
===================================================================
--- utils/release/test-release.sh
+++ utils/release/test-release.sh
@@ -208,6 +208,16 @@
 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}" >> $LogDir/deferred_errors.log
+}
+
 # Make sure that a required program is available
 function check_program_exists() {
   local program="$1"
@@ -367,13 +377,17 @@
     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 @@
   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


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D11478.30530.patch
Type: text/x-patch
Size: 1611 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150723/eea3b36f/attachment.bin>


More information about the llvm-commits mailing list