Streamline postmortem analysis, and fix non-essential-test report being lost
Peter Rabbitson [Mon, 14 Oct 2013 12:09:45 +0000 (14:09 +0200)]
It got eaten by lack of STDERR output after fixage from a4c52abc, GAH!

maint/travis-ci_scripts/30_before_script.bash
maint/travis-ci_scripts/40_script.bash
maint/travis-ci_scripts/common.bash

index de03bdf..46eef91 100755 (executable)
@@ -139,11 +139,21 @@ my $curskip_re = qr{^ === \x20 \QSkipping nonessential autogenerated tests: \E([
 my (undef, @chunks) = (split qr/$curmod_re/, <>);
 while (@chunks) {
   my ($mod, $log) = splice @chunks, 0, 2;
-  print "!!! Skipped nonessential tests while installing $mod: $1\n"
+  print "!!! Skipped nonessential tests while installing $mod:\n\t$1\n"
     if $log =~ $curskip_re;
 }
 ' <<< "$LASTOUT")
 
+    if [[ -n "$INSTALLDEPS_SKIPPED_TESTLIST" ]] ; then
+      POSTMORTEM="$POSTMORTEM$(
+        echo "The following non-essential tests were skipped during deps installation"
+        echo "============================================================="
+        echo "$INSTALLDEPS_SKIPPED_TESTLIST"
+        echo "============================================================="
+        echo
+      )"
+    fi
+
     unset HARNESS_SUBCLASS
   fi
 
index 3131d44..fed1396 100755 (executable)
@@ -30,24 +30,23 @@ TEST_T1=$SECONDS
 if [[ -z "$DBICTRACE" ]] && [[ -z "$POISON_ENV" ]] && [[ -s "$TEST_STDERR_LOG" ]] ; then
   STDERR_LOG_SIZE=$(wc -l < "$TEST_STDERR_LOG")
 
-  echo
-  echo "Test run produced $STDERR_LOG_SIZE lines of output on STDERR:"
-  echo "============================================================="
-  cat "$TEST_STDERR_LOG"
-  echo "============================================================="
-  echo "End of test run STDERR output ($STDERR_LOG_SIZE lines)"
-  echo
-
-  if [[ -n "$INSTALLDEPS_SKIPPED_TESTLIST" ]] ; then
-    echo "The following non-essential tests were skipped during deps installation"
+  # prepend STDERR log
+  POSTMORTEM="$(
+    echo
+    echo "Test run produced $STDERR_LOG_SIZE lines of output on STDERR:"
     echo "============================================================="
-    echo "$INSTALLDEPS_SKIPPED_TESTLIST"
+    cat "$TEST_STDERR_LOG"
     echo "============================================================="
+    echo "End of test run STDERR output ($STDERR_LOG_SIZE lines)"
     echo
-  fi
-
-  echo "Full dep install log at $(/usr/bin/nopaste -q -s Shadowcat -d DepInstall <<< "$INSTALLDEPS_OUT")"
-  echo
+  )$POSTMORTEM"
 fi
 
+echo
+echo "${POSTMORTEM:- \o/ No notable smoke run issues \o/ }"
+echo
 echo "$(tstamp) Testing took a total of $(( $TEST_T1 - $TEST_T0 ))s"
+if [[ -n "$INSTALLDEPS_OUT" ]] ; then
+  echo "$(tstamp) Full dep install log at $(/usr/bin/nopaste -q -s Shadowcat -d DepInstall <<< "$INSTALLDEPS_OUT")"
+fi
+echo
index 230d140..5f8a059 100755 (executable)
@@ -114,7 +114,12 @@ installdeps() {
   if [[ "$LASTEXIT" = "0" ]] ; then
     echo_err "done (took ${DELTA_TIME}s)"
   else
-    echo_err -n "failed (after ${DELTA_TIME}s Exit:$LASTEXIT Log:$(/usr/bin/nopaste -q -s Shadowcat -d "Parallel installfail" <<< "$LASTOUT")) retrying with sequential testing ... "
+    local errlog="after ${DELTA_TIME}s Exit:$LASTEXIT Log:$(/usr/bin/nopaste -q -s Shadowcat -d "Parallel installfail" <<< "$LASTOUT")"
+    echo_err -n "failed ($errlog) retrying with sequential testing ... "
+    POSTMORTEM="$POSTMORTEM$(
+      echo
+      echo "Depinstall under $HARNESS_OPTIONS parallel testing failed $errlog (while attempting install of $@)"
+    )"
 
     HARNESS_OPTIONS=""
     LASTEXIT=0