|
8 | 8 | # Tracing executed commands would produce too much noise in the loop below.
|
9 | 9 | set +x
|
10 | 10 |
|
11 |
| -if ! ls t/test-results/*.exit >/dev/null 2>/dev/null |
| 11 | +cd t/ |
| 12 | + |
| 13 | +if ! ls test-results/*.exit >/dev/null 2>/dev/null |
12 | 14 | then
|
13 | 15 | echo "Build job failed before the tests could have been run"
|
14 | 16 | exit
|
15 | 17 | fi
|
16 | 18 |
|
17 |
| -for TEST_EXIT in t/test-results/*.exit |
| 19 | +case "$jobname" in |
| 20 | +osx-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 | + ;; |
| 25 | +esac |
| 26 | + |
| 27 | +combined_trash_size=0 |
| 28 | +for TEST_EXIT in test-results/*.exit |
18 | 29 | do
|
19 | 30 | if [ "$(cat "$TEST_EXIT")" != "0" ]
|
20 | 31 | then
|
|
23 | 34 | echo "$(tput setaf 1)${TEST_OUT}...$(tput sgr0)"
|
24 | 35 | echo "------------------------------------------------------------------------"
|
25 | 36 | cat "${TEST_OUT}"
|
| 37 | + |
| 38 | + test_name="${TEST_EXIT%.exit}" |
| 39 | + test_name="${test_name##*/}" |
| 40 | + trash_dir="trash directory.$test_name" |
| 41 | + trash_tgz_b64="trash.$test_name.base64" |
| 42 | + if [ -d "$trash_dir" ] |
| 43 | + then |
| 44 | + tar czp "$trash_dir" |base64 $base64_opts >"$trash_tgz_b64" |
| 45 | + |
| 46 | + trash_size=$(wc -c <"$trash_tgz_b64") |
| 47 | + if [ $trash_size -gt 1048576 ] |
| 48 | + then |
| 49 | + # larger than 1MB |
| 50 | + echo "$(tput setaf 1)Didn't include the trash directory of '$test_name' in the trace log, it's too big$(tput sgr0)" |
| 51 | + continue |
| 52 | + fi |
| 53 | + |
| 54 | + new_combined_trash_size=$(($combined_trash_size + $trash_size)) |
| 55 | + if [ $new_combined_trash_size -gt 1048576 ] |
| 56 | + then |
| 57 | + echo "$(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)" |
| 58 | + continue |
| 59 | + fi |
| 60 | + combined_trash_size=$new_combined_trash_size |
| 61 | + |
| 62 | + # DO NOT modify these two 'echo'-ed strings below |
| 63 | + # without updating 'ci/util/extract-trash-dirs.sh' |
| 64 | + # as well. |
| 65 | + echo "$(tput setaf 1)Start of trash directory of '$test_name':$(tput sgr0)" |
| 66 | + cat "$trash_tgz_b64" |
| 67 | + echo "$(tput setaf 1)End of trash directory of '$test_name'$(tput sgr0)" |
| 68 | + fi |
26 | 69 | fi
|
27 | 70 | done
|
| 71 | + |
| 72 | +if [ $combined_trash_size -gt 0 ] |
| 73 | +then |
| 74 | + echo "------------------------------------------------------------------------" |
| 75 | + echo "Trash directories embedded in this log can be extracted by running:" |
| 76 | + echo |
| 77 | + echo " curl https://api.travis-ci.org/v3/job/$TRAVIS_JOB_ID/log.txt |./ci/util/extract-trash-dirs.sh" |
| 78 | +fi |
0 commit comments