mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-10 01:17:44 +03:00
b382b8de1e
The old env var doesn't seem to be used anywhere, and the script currently doesn't work, so it seems safe to change immediately
84 lines
1.8 KiB
Bash
Executable File
84 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
BUILD_DIR="$($(dirname "$0")/../tools/find-build-dir.sh)"
|
|
if [ $# -gt 0 ]; then
|
|
args="$@"
|
|
else
|
|
args="setup run clean-again"
|
|
fi
|
|
args_no_clean=$(sed -r 's/\bclean\b//g' <<<$args)
|
|
do_clean=$( [ "$args" = "$args_no_clean" ]; echo $? )
|
|
|
|
ninja -C "$BUILD_DIR"
|
|
|
|
declare -A results
|
|
declare -A times
|
|
|
|
COUNT=0
|
|
FAILURES=0
|
|
|
|
cd "$(dirname "$0")"
|
|
|
|
# Let's always do the cleaning operation first, because it destroys the image
|
|
# cache.
|
|
if [ $do_clean = 1 ]; then
|
|
for TEST in TEST-??-* ; do
|
|
( set -x ; make -C "$TEST" "BUILD_DIR=$BUILD_DIR" clean )
|
|
done
|
|
|
|
[ -n "$args_no_clean" ] || exit 0
|
|
fi
|
|
|
|
pass_deny_list() {
|
|
for marker in $DENY_LIST_MARKERS $BLACKLIST_MARKERS; do
|
|
if [ -f "$1/$marker" ]; then
|
|
echo "========== DENY-LISTED: $1 ($marker) =========="
|
|
return 1
|
|
fi
|
|
done
|
|
return 0
|
|
}
|
|
|
|
for TEST in TEST-??-* ; do
|
|
COUNT=$(($COUNT+1))
|
|
|
|
pass_deny_list $TEST || continue
|
|
start=$(date +%s)
|
|
|
|
echo -e "\n--x-- Running $TEST --x--"
|
|
set +e
|
|
( set -x ; make -C "$TEST" "BUILD_DIR=$BUILD_DIR" $args_no_clean )
|
|
RESULT=$?
|
|
set -e
|
|
echo "--x-- Result of $TEST: $RESULT --x--"
|
|
|
|
results["$TEST"]="$RESULT"
|
|
times["$TEST"]=$(( $(date +%s) - $start ))
|
|
|
|
[ "$RESULT" -ne "0" ] && FAILURES=$(($FAILURES+1))
|
|
done
|
|
|
|
if [ $FAILURES -eq 0 -a $do_clean = 1 ]; then
|
|
for TEST in ${!results[@]}; do
|
|
( set -x ; make -C "$TEST" "BUILD_DIR=$BUILD_DIR" clean-again )
|
|
done
|
|
fi
|
|
|
|
echo ""
|
|
|
|
for TEST in ${!results[@]}; do
|
|
RESULT="${results[$TEST]}"
|
|
time="${times[$TEST]}"
|
|
string=$([ "$RESULT" = "0" ] && echo "SUCCESS" || echo "FAIL")
|
|
printf "%-35s %-8s (%3s s)\n" "${TEST}:" "${string}" "$time"
|
|
done | sort
|
|
|
|
if [ "$FAILURES" -eq 0 ] ; then
|
|
echo -e "\nALL $COUNT TESTS PASSED"
|
|
else
|
|
echo -e "\nTOTAL FAILURES: $FAILURES OF $COUNT"
|
|
fi
|
|
|
|
exit "$FAILURES"
|