Release coccinelle-0.2.0rc1
[bpt/coccinelle.git] / scripts / extractor_README.pl
CommitLineData
34e49164
C
1#!/usr/bin/perl
2
3use strict;
4
5my $ok = 0; #ok+spatch-ok
6my $wrong = 0; #Error, file level
7my $fail = 0;
8my $unknown = 0;
9my $nbfiles = 0;
10
11my $bugfix = 0; # site level ?
12my $wrongsites = 0; # Error, site level
13
14my $SP = "";
15
16while(<>) {
17
18 if(/\[status\]/) { $nbfiles++; }
19
20 if(/\[status\]\s*(spatch-ok|ok)\b/) { $ok++; }
21 if(/\[status\]\s*(wrong)\b/) { $wrong++; }
22 if(/\[status\]\s*(fail)\b/) { $fail++; }
23
24 if(/\[status\]\s*(UNKNOWN)\b/) { $unknown++; }
25
26 if(/Cocci\s+file\s*:\s*(\w+.cocci)/) { $SP = $1; }
27
28}
29
30my $pourcentcorrect = ($ok * 100.0) / $nbfiles;
31
32print "----------------------------------------\n";
33print "!!Total files = $nbfiles\n";
34print " Correct number = $ok\n";
35printf "!!Correct = %3.1f\%\n", $pourcentcorrect;
36print "!!Error = $wrong\n";
37print "!!Bugfix (sites) = $bugfix\n";
38
39
40my $sizeSP = `cat $SP | perl -p -e "s/\\/\\/.*//g;" | grep -v '^[ \t]*\$' | wc -l`;
41chomp $sizeSP;
42print "!!Size SP = $sizeSP\n";
43
44my $gitinfo = `ls *.gitinfo`;
45chomp $gitinfo;
46print " gitinfo files = $gitinfo\n";
47
48my $sizeP = `cat *.gitinfo | wc -l`;
49chomp $sizeP;
50print " Size P = $sizeP\n";
51
52my $ratioSPvsP = ($sizeSP * 100.0) / $sizeP;
53printf "!!Ratio SP vs P = %3.1f\%\n", $ratioSPvsP;
54
55my $ratioPvsSP = $sizeP / $sizeSP;
56printf "!!Ratio SP vs P = %3.1f\n", $ratioPvsSP;
57
58
59my $totalstatus = $ok + $fail + $wrong + $unknown;
60print "----------------------------------------------------------------\n";
61print "Sanity checks: nb files = $nbfiles, total status = $totalstatus\n";
62print "NB UNKNOWNS = $unknown\n" if $unknown > 0;