
When running `make test`, when missing prereqs the following is emitted:
make aggregate-results
usage: paste [-s] [-d delimiters] file ...
fixed 1
success 30066
failed 0
broken 218
total 31274
POSIX says that `paste` requires a file operand; stdin was clearly
intended by 49da404070
(test-lib: show missing prereq summary,
2021-11-20). Use it.
Signed-off-by: D. Ben Knoble <ben.knoble+github@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
64 lines
1.1 KiB
Bash
Executable File
64 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
|