diff options
Diffstat (limited to 'third_party/git/contrib/coverage-diff.sh')
-rwxr-xr-x | third_party/git/contrib/coverage-diff.sh | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/third_party/git/contrib/coverage-diff.sh b/third_party/git/contrib/coverage-diff.sh deleted file mode 100755 index 4ec419f90048..000000000000 --- a/third_party/git/contrib/coverage-diff.sh +++ /dev/null @@ -1,108 +0,0 @@ -#!/bin/sh - -# Usage: Run 'contrib/coverage-diff.sh <version1> <version2>' from source-root -# after running -# -# make coverage-test -# make coverage-report -# -# while checked out at <version2>. This script combines the *.gcov files -# generated by the 'make' commands above with 'git diff <version1> <version2>' -# to report new lines that are not covered by the test suite. - -V1=$1 -V2=$2 - -diff_lines () { - perl -e ' - my $line_num; - while (<>) { - # Hunk header? Grab the beginning in postimage. - if (/^@@ -\d+(?:,\d+)? \+(\d+)(?:,\d+)? @@/) { - $line_num = $1; - next; - } - - # Have we seen a hunk? Ignore "diff --git" etc. - next unless defined $line_num; - - # Deleted line? Ignore. - if (/^-/) { - next; - } - - # Show only the line number of added lines. - if (/^\+/) { - print "$line_num\n"; - } - # Either common context or added line appear in - # the postimage. Count it. - $line_num++; - } - ' -} - -files=$(git diff --name-only "$V1" "$V2" -- \*.c) - -# create empty file ->coverage-data.txt - -for file in $files -do - git diff "$V1" "$V2" -- "$file" | - diff_lines | - sort >new_lines.txt - - if ! test -s new_lines.txt - then - continue - fi - - hash_file=$(echo $file | sed "s/\//\#/") - - if ! test -s "$hash_file.gcov" - then - continue - fi - - sed -ne '/#####:/{ - s/ #####:// - s/:.*// - s/ //g - p - }' "$hash_file.gcov" | - sort >uncovered_lines.txt - - comm -12 uncovered_lines.txt new_lines.txt | - sed -e 's/$/\)/' | - sed -e 's/^/ /' >uncovered_new_lines.txt - - grep -q '[^[:space:]]' <uncovered_new_lines.txt && - echo $file >>coverage-data.txt && - git blame -s "$V2" -- "$file" | - sed 's/\t//g' | - grep -f uncovered_new_lines.txt >>coverage-data.txt && - echo >>coverage-data.txt - - rm -f new_lines.txt uncovered_lines.txt uncovered_new_lines.txt -done - -cat coverage-data.txt - -echo "Commits introducing uncovered code:" - -commit_list=$(cat coverage-data.txt | - grep -E '^[0-9a-f]{7,} ' | - awk '{print $1;}' | - sort | - uniq) - -( - for commit in $commit_list - do - git log --no-decorate --pretty=format:'%an %h: %s' -1 $commit - echo - done -) | sort - -rm coverage-data.txt |