Nick Travis script improvements from DBIC
[dbsrgits/DBIx-Class-Schema-Loader.git] / maint / travis-ci_scripts / 40_script.bash
1 #!/bin/bash
2
3 # this file is executed in a subshell - set up the common stuff
4 source maint/travis-ci_scripts/common.bash
5
6 if [[ -n "$SHORT_CIRCUIT_SMOKE" ]] ; then return ; fi
7
8 run_harness_tests() {
9   local -x HARNESS_OPTIONS=c
10   make test 2> >(tee "$TEST_STDERR_LOG")
11 }
12
13 TEST_T0=$SECONDS
14 if [[ "$CLEANTEST" = "true" ]] ; then
15   echo_err "$(tstamp) Running tests with plain \`make test\`"
16   run_or_err "Prepare blib" "make pure_all"
17   run_harness_tests
18 else
19   PROVECMD="prove -lrsw t"
20
21   echo_err "$(tstamp) running tests with \`$PROVECMD\`"
22   $PROVECMD 2> >(tee "$TEST_STDERR_LOG")
23 fi
24 TEST_T1=$SECONDS
25
26 if [[ -z "$DBICTRACE" ]] && [[ -z "$POISON_ENV" ]] && [[ -s "$TEST_STDERR_LOG" ]] ; then
27   STDERR_LOG_SIZE=$(wc -l < "$TEST_STDERR_LOG")
28
29   # prepend STDERR log
30   POSTMORTEM="$(
31     echo
32     echo "Test run produced $STDERR_LOG_SIZE lines of output on STDERR:"
33     echo "============================================================="
34     cat "$TEST_STDERR_LOG"
35     echo "============================================================="
36     echo "End of test run STDERR output ($STDERR_LOG_SIZE lines)"
37     echo
38     echo
39   )$POSTMORTEM"
40 fi
41
42 echo
43 echo "${POSTMORTEM:- \o/ No notable smoke run issues \o/ }"
44 echo
45 echo "$(tstamp) Testing took a total of $(( $TEST_T1 - $TEST_T0 ))s"
46 if [[ -n "$INSTALLDEPS_OUT" ]] ; then
47   echo "$(tstamp) Full dep install log at $(/usr/bin/nopaste -q -s Shadowcat -d DepInstall <<< "$INSTALLDEPS_OUT")"
48 fi
49 echo