git/t/aggregate-results.sh
Felipe Contreras 5d1d62e875 test: simplify counts aggregation
When the list of files as input was implemented in 6508eedf67
(t/aggregate-results: accomodate systems with small max argument list
length, 2010-06-01), a much simpler solution wasn't considered.

Let's just pass the directory as an argument.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2023-03-09 14:57:55 -08:00

63 lines
1.1 KiB
Bash
Executable file

#!/bin/sh
failed_tests=
fixed=0
success=0
failed=0
broken=0
total=0
missing_prereq=
for file in "$1"/t*-*.counts
do
while read type value
do
case $type in
'')
continue ;;
fixed)
fixed=$(($fixed + $value)) ;;
success)
success=$(($success + $value)) ;;
failed)
failed=$(($failed + $value))
if test $value != 0
then
testnum=$(expr "$file" : 'test-results/\(t[0-9]*\)-')
failed_tests="$failed_tests $testnum"
fi
;;
broken)
broken=$(($broken + $value)) ;;
total)
total=$(($total + $value)) ;;
missing_prereq)
missing_prereq="$missing_prereq,$value" ;;
esac
done <"$file"
done
if test -n "$missing_prereq"
then
unique_missing_prereq=$(
echo $missing_prereq |
tr -s "," "\n" |
grep -v '^$' |
sort -u |
paste -s -d ' ')
if test -n "$unique_missing_prereq"
then
printf "\nmissing prereq: $unique_missing_prereq\n\n"
fi
fi
if test -n "$failed_tests"
then
printf "\nfailed test(s):$failed_tests\n\n"
fi
printf "%-8s%d\n" fixed $fixed
printf "%-8s%d\n" success $success
printf "%-8s%d\n" failed $failed
printf "%-8s%d\n" broken $broken
printf "%-8s%d\n" total $total