summaryrefslogtreecommitdiffstats
path: root/3rdparty/openpgm-svn-r1135/pgm/gcov-parse.pl
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/openpgm-svn-r1135/pgm/gcov-parse.pl')
-rwxr-xr-x3rdparty/openpgm-svn-r1135/pgm/gcov-parse.pl41
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