|
15 | 15 |
|
16 | 16 | set -ex
|
17 | 17 |
|
| 18 | +# directories known as flaky tests |
| 19 | +FLAKES=( |
| 20 | + datastore/api |
| 21 | +) |
| 22 | + |
| 23 | +TMP_REPORT_DIR=$(mktemp -d) |
| 24 | + |
| 25 | +SUCCEEDED_FILE=${TMP_REPORT_DIR}/succeeded |
| 26 | +FAILED_FILE=${TMP_REPORT_DIR}/failed |
| 27 | +FAILED_FLAKY_FILE=${TMP_REPORT_DIR}/failed_flaky |
| 28 | + |
18 | 29 | # Determine all files changed on this branch
|
19 | 30 | # (will be empty if running from "master").
|
20 | 31 | FILES_CHANGED=$(git diff --name-only HEAD $(git merge-base HEAD master))
|
|
44 | 55 | fi
|
45 | 56 | fi
|
46 | 57 | pushd ${DIR}
|
| 58 | + # Temporarily allowing error |
| 59 | + set +e |
47 | 60 | if [ -f "composer.json" ]; then
|
48 | 61 | # install composer dependencies
|
49 | 62 | ${COMPOSER_COMMAND}
|
50 | 63 | fi
|
| 64 | + if [ $? != 0 ]; then |
| 65 | + echo "${DIR}: failed" >> "${FAILED_FILE}" |
| 66 | + continue |
| 67 | + fi |
51 | 68 | echo "running phpunit in ${DIR}"
|
52 | 69 | if [ -f "vendor/bin/phpunit" ]; then
|
53 | 70 | vendor/bin/phpunit
|
54 | 71 | else
|
55 | 72 | phpunit
|
56 | 73 | fi
|
| 74 | + if [ $? == 0 ]; then |
| 75 | + echo "${DIR}: ok" >> "${SUCCEEDED_FILE}" |
| 76 | + else |
| 77 | + if [[ "${FLAKES[@]}" =~ "${DIR}" ]]; then |
| 78 | + echo "${DIR}: failed" >> "${FAILED_FLAKY_FILE}" |
| 79 | + else |
| 80 | + echo "${DIR}: failed" >> "${FAILED_FILE}" |
| 81 | + fi |
| 82 | + fi |
| 83 | + set -e |
57 | 84 | if [ "$RUN_ALL_TESTS" -eq "1" ] && [ -f build/logs/clover.xml ]; then
|
58 | 85 | cp build/logs/clover.xml \
|
59 | 86 | ${TEST_BUILD_DIR}/build/logs/clover-${DIR//\//_}.xml
|
60 | 87 | fi
|
61 | 88 | popd
|
62 | 89 | done
|
| 90 | + |
| 91 | +# Show the summary report |
| 92 | +set +x |
| 93 | + |
| 94 | +if [ -f "${SUCCEEDED_FILE}" ]; then |
| 95 | + echo "--------- Succeeded tests -----------" |
| 96 | + cat "${SUCCEEDED_FILE}" |
| 97 | + echo "-------------------------------------" |
| 98 | +fi |
| 99 | + |
| 100 | +if [ -f "${FAILED_FILE}" ]; then |
| 101 | + echo "--------- Failed tests --------------" |
| 102 | + cat "${FAILED_FILE}" |
| 103 | + echo "-------------------------------------" |
| 104 | +fi |
| 105 | + |
| 106 | +if [ -f "${FAILED_FLAKY_FILE}" ]; then |
| 107 | + echo "-------- Failed flaky tests ---------" |
| 108 | + cat "${FAILED_FLAKY_FILE}" |
| 109 | + echo "-------------------------------------" |
| 110 | +fi |
| 111 | + |
| 112 | +# Finally report failure if any tests failed |
| 113 | +if [ -f "${FAILED_FILE}" ]; then |
| 114 | + exit 1 |
| 115 | +fi |
0 commit comments