]>
Commit | Line | Data |
---|---|---|
ff12a795 JT |
1 | #!/usr/bin/env bash |
2 | set -e | |
8fe9c8d9 | 3 | |
232add5c DS |
4 | if [ "$NO_BUILD" ]; then |
5 | BUILD_DIR="" | |
6 | elif BUILD_DIR="$($(dirname "$0")/../tools/find-build-dir.sh)"; then | |
7 | ninja -C "$BUILD_DIR" | |
8 | else | |
9 | echo "No build found, please set BUILD_DIR or NO_BUILD" >&2 | |
10 | exit 1 | |
11 | fi | |
12 | ||
2535f23d | 13 | if [ $# -gt 0 ]; then |
cc5549ca | 14 | args="$@" |
2535f23d | 15 | else |
693ad298 | 16 | args="setup run clean-again" |
2535f23d | 17 | fi |
92fa741c | 18 | args_no_clean=$(sed -r 's/\bclean.*\b//g' <<<$args) |
73abf7ae | 19 | do_clean=$( [ "$args" = "$args_no_clean" ]; echo $? ) |
8fe9c8d9 | 20 | |
8fe9c8d9 | 21 | declare -A results |
5a89d7b3 | 22 | declare -A times |
8fe9c8d9 | 23 | |
967bae68 | 24 | COUNT=0 |
8fe9c8d9 LP |
25 | FAILURES=0 |
26 | ||
ded65775 | 27 | cd "$(dirname "$0")" |
8c3534b5 | 28 | |
73abf7ae ZJS |
29 | # Let's always do the cleaning operation first, because it destroys the image |
30 | # cache. | |
8c3534b5 ZJS |
31 | if [ $do_clean = 1 ]; then |
32 | for TEST in TEST-??-* ; do | |
12d31e4e | 33 | ( set -x ; make -C "$TEST" clean ) |
8c3534b5 | 34 | done |
abf6346c ZJS |
35 | |
36 | [ -n "$args_no_clean" ] || exit 0 | |
8c3534b5 ZJS |
37 | fi |
38 | ||
b382b8de LB |
39 | pass_deny_list() { |
40 | for marker in $DENY_LIST_MARKERS $BLACKLIST_MARKERS; do | |
3597bf75 | 41 | if [ -f "$1/$marker" ]; then |
b382b8de | 42 | echo "========== DENY-LISTED: $1 ($marker) ==========" |
3597bf75 ZJS |
43 | return 1 |
44 | fi | |
45 | done | |
46 | return 0 | |
47 | } | |
48 | ||
8fe9c8d9 | 49 | for TEST in TEST-??-* ; do |
cc5549ca | 50 | COUNT=$(($COUNT+1)) |
967bae68 | 51 | |
b382b8de | 52 | pass_deny_list $TEST || continue |
5a89d7b3 | 53 | start=$(date +%s) |
3597bf75 | 54 | |
cc5549ca ZJS |
55 | echo -e "\n--x-- Running $TEST --x--" |
56 | set +e | |
12d31e4e | 57 | ( set -x ; make -C "$TEST" $args_no_clean ) |
cc5549ca ZJS |
58 | RESULT=$? |
59 | set -e | |
60 | echo "--x-- Result of $TEST: $RESULT --x--" | |
8fe9c8d9 | 61 | |
cc5549ca | 62 | results["$TEST"]="$RESULT" |
5a89d7b3 | 63 | times["$TEST"]=$(( $(date +%s) - $start )) |
8fe9c8d9 | 64 | |
cc5549ca | 65 | [ "$RESULT" -ne "0" ] && FAILURES=$(($FAILURES+1)) |
8fe9c8d9 LP |
66 | done |
67 | ||
8c3534b5 | 68 | if [ $FAILURES -eq 0 -a $do_clean = 1 ]; then |
3597bf75 | 69 | for TEST in ${!results[@]}; do |
12d31e4e | 70 | ( set -x ; make -C "$TEST" clean-again ) |
8c3534b5 ZJS |
71 | done |
72 | fi | |
73 | ||
8fe9c8d9 LP |
74 | echo "" |
75 | ||
76 | for TEST in ${!results[@]}; do | |
cc5549ca | 77 | RESULT="${results[$TEST]}" |
5a89d7b3 ZJS |
78 | time="${times[$TEST]}" |
79 | string=$([ "$RESULT" = "0" ] && echo "SUCCESS" || echo "FAIL") | |
80 | printf "%-35s %-8s (%3s s)\n" "${TEST}:" "${string}" "$time" | |
8fe9c8d9 LP |
81 | done | sort |
82 | ||
83 | if [ "$FAILURES" -eq 0 ] ; then | |
cc5549ca | 84 | echo -e "\nALL $COUNT TESTS PASSED" |
8fe9c8d9 | 85 | else |
cc5549ca | 86 | echo -e "\nTOTAL FAILURES: $FAILURES OF $COUNT" |
8fe9c8d9 LP |
87 | fi |
88 | ||
89 | exit "$FAILURES" |