1
0
Fork 0

build: Add a script to format gcov report lines

Instead of using echo let's try Perl and the format() built-in.
This commit is contained in:
Emmanuele Bassi 2010-01-13 16:35:53 +00:00
parent 948db40c87
commit a076e0e11d
3 changed files with 47 additions and 1 deletions

View file

@ -1 +1,3 @@
SUBDIRS = autotools
EXTRA_DIST = gen-gcov.pl

View file

@ -11,7 +11,7 @@ gcov-report.txt: gcov-clean
covered=$$((actual - uncovered)); \
total_covered=$$((total_covered + covered)); \
total_actual=$$((total_actual + actual)); \
echo -e "$$file: \t$$covered / $$actual\t($$((($$covered * 100) / $$actual))%)"; \
perl $(top_builddir)/build/gen-gcov.pl $$file.gcov; \
fi \
done >> $@; \
cd $(abs_srcdir); \

44
build/gen-gcov.pl Executable file
View file

@ -0,0 +1,44 @@
#!/usr/bin/perl
use strict;
use warnings;
our $gcov_file = $ARGV[0] or undef;
open my $g, '<', $gcov_file
or die("Unable to open '$gcov_file': $!");
my ($actual, $covered, $uncovered, $percent) = (0, 0, 0, 0);
while (<$g>) {
my $report_line = $_;
chomp($report_line);
$actual += 1;
$actual -= 1 if $report_line =~ / -:/;
$uncovered += 1 if $report_line =~ /#####:/;
}
close($g);
$covered = $actual - $uncovered;
$percent = int(($covered * 100) / $actual);
$gcov_file =~ s/^\.\///g;
$gcov_file =~ s/\.gcov$//g;
my $cover_file = "$gcov_file:";
my $cover_literal = "$covered / $actual";
my $cover_percent = "$percent%";
format ReportLine =
@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @>>>>>>>>>>>>> @>>>>>
$cover_file, $cover_literal, $cover_percent
.
$~ = 'ReportLine';
write;
0;