1#!/bin/sh 2# 3# Print output of failing tests 4# 5 6. ${0%/*}/lib.sh 7 8# Tracing executed commands would produce too much noise in the loop below. 9set+x 10 11cd t/ 12 13if!lstest-results/*.exit>/dev/null 2>/dev/null 14then 15echo"Build job failed before the tests could have been run" 16exit 17fi 18 19case"$jobname"in 20osx-clang|osx-gcc) 21# base64 in OSX doesn't wrap its output at 76 columns by 22# default, but prints a single, very long line. 23 base64_opts="-b 76" 24;; 25esac 26 27combined_trash_size=0 28for TEST_EXIT intest-results/*.exit 29do 30if["$(cat "$TEST_EXIT")"!="0"] 31then 32 TEST_OUT="${TEST_EXIT%exit}out" 33echo"------------------------------------------------------------------------" 34echo"$(tput setaf 1)${TEST_OUT}...$(tput sgr0)" 35echo"------------------------------------------------------------------------" 36cat"${TEST_OUT}" 37 38 test_name="${TEST_EXIT%.exit}" 39 test_name="${test_name##*/}" 40 trash_dir="trash directory.$test_name" 41case"$CI_TYPE"in 42 travis) 43;; 44*) 45echo"Unhandled CI type:$CI_TYPE">&2 46exit1 47;; 48esac 49 trash_tgz_b64="trash.$test_name.base64" 50if[-d"$trash_dir"] 51then 52tar czp "$trash_dir"|base64 $base64_opts>"$trash_tgz_b64" 53 54 trash_size=$(wc -c <"$trash_tgz_b64") 55if[$trash_size-gt1048576] 56then 57# larger than 1MB 58echo"$(tput setaf 1)Didn't include the trash directory of '$test_name' in the trace log, it's too big$(tput sgr0)" 59continue 60fi 61 62 new_combined_trash_size=$(($combined_trash_size + $trash_size)) 63if[$new_combined_trash_size-gt1048576] 64then 65echo"$(tput setaf 1)Didn't include the trash directory of '$test_name' in the trace log, there is plenty of trash in there already.$(tput sgr0)" 66continue 67fi 68 combined_trash_size=$new_combined_trash_size 69 70# DO NOT modify these two 'echo'-ed strings below 71# without updating 'ci/util/extract-trash-dirs.sh' 72# as well. 73echo"$(tput setaf 1)Start of trash directory of '$test_name':$(tput sgr0)" 74cat"$trash_tgz_b64" 75echo"$(tput setaf 1)End of trash directory of '$test_name'$(tput sgr0)" 76fi 77fi 78done 79 80if[$combined_trash_size-gt0] 81then 82echo"------------------------------------------------------------------------" 83echo"Trash directories embedded in this log can be extracted by running:" 84echo 85echo" curl https://api.travis-ci.org/v3/job/$TRAVIS_JOB_ID/log.txt |./ci/util/extract-trash-dirs.sh" 86fi