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