blob: 6a75d0c640535a0c4ff9c859bf1017235f1dd518 [file] [log] [blame]
#!/bin/bash
VERBOSE=
[[ $1 == "-v" ]] && VERBOSE=y
unique_contributors_num=$(git --no-pager shortlog --no-merges -n -s -- include/kunit lib/kunit tools/testing/kunit/ | wc -l)
patches_not_from_team_num=$(git log --pretty=oneline --perl-regexp \
--author='^((?!Brendan Higgins|David Gow|Heidi Fahim|Felix Guo|Avinash Kondareddy|Daniel Latypov).*)$' \
-- include/kunit lib/kunit tools/testing/kunit/ | wc -l)
# Manual list of files to exclude in `all_tests`.
not_tests='lib/kunit/test.c
'
all_tests=$(for file_name in $(git grep -l -e '#include <kunit/test.h>' | grep -E 'test|_kunit\.c' | grep -v '^Documentation')
do
if [[ ! $not_tests =~ (^|[[:space:]])"$file_name"($|[[:space:]]) ]] ; then
printf "$file_name\n"
fi
done)
tests_total_num=$(echo "$all_tests" | wc -l)
test_authors=$(git --no-pager shortlog --no-merges -n -s -- $all_tests)
test_author_num=$(echo "$test_authors" | wc -l)
test_case_num=$(git grep 'KUNIT_CASE' | grep -Ev '^Documentation/|get_metrics.sh|include/kunit/test.h' | wc -l)
if [[ -n $VERBOSE ]]; then
printf "All tests:\t$all_tests\n"
printf "Test authors:\t$test_authors\n"
fi
printf "Unique contributors:\t$unique_contributors_num\n"
printf "Number of patches:\t$patches_not_from_team_num\n"
printf "Number of total tests:\t$tests_total_num\n"
printf "Number of test authors:\t$test_author_num\n"
printf "Number of test cases:\t$test_case_num\n"