diff options
Diffstat (limited to '3rdparty/openpgm-svn-r1135/pgm/gcov-parse.pl')
-rwxr-xr-x | 3rdparty/openpgm-svn-r1135/pgm/gcov-parse.pl | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/3rdparty/openpgm-svn-r1135/pgm/gcov-parse.pl b/3rdparty/openpgm-svn-r1135/pgm/gcov-parse.pl new file mode 100755 index 0000000..b87a3f3 --- /dev/null +++ b/3rdparty/openpgm-svn-r1135/pgm/gcov-parse.pl @@ -0,0 +1,41 @@ +#!/usr/bin/perl + +$type = ''; +$target = ''; + +while (<>) { + chomp; + if (/^(Function|File) '(.+)'/) { + $type = $1; + $target = $2; + } elsif (/^Lines executed:(\d+\.\d+)% of (\d+)/) { +# print "$type,$target,$1,$2\n"; + if ($type cmp 'File') { + $files{$target} = $1; + } else { + $functions{$target} = $1; + } + } +} + +#@sorted = sort { $files{$a} <=> $files{$b} } keys %files; +#foreach $name (@sorted) +#{ +# print "$name:$files{$name}\n"; +#} +@sorted = sort { $functions{$a} <=> $functions{$b} } keys %functions; +$total = 0; +$count = 0; +foreach $name (@sorted) +{ + next if $name =~ m#^/#; + next if $name =~ m#.+\.h$#; + next if $name =~ m#_unittest\.c$#; + print sprintf("%20s: %3.1f%%\n", $name, $functions{$name}); + $total += $functions{$name}; + $count++; +} +$total /= $count; +print "\n TOTAL: ~" . int($total) . "%\n\n"; + +# eof |