author | Maciej Seroka <maciejs@symbian.org> |
Wed, 03 Mar 2010 10:25:44 +0000 | |
changeset 910 | e460b00fdc7b |
permissions | -rw-r--r-- |
910
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
1 |
#!/usr/bin/perl |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
2 |
|
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
3 |
# Copyright (c) 2009 Symbian Foundation Ltd |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
4 |
# This component and the accompanying materials are made available |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
5 |
# under the terms of the License "Eclipse Public License v1.0" |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
6 |
# which accompanies this distribution, and is available |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
7 |
# at the URL "http://www.eclipse.org/legal/epl-v10.html". |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
8 |
# |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
9 |
# Initial Contributors: |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
10 |
# Symbian Foundation Ltd - initial contribution. |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
11 |
# Maciej Seroka, maciejs@symbian.org |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
12 |
# |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
13 |
# Description: |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
14 |
# This is a tool for filtering static BC header reports. |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
15 |
# |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
16 |
|
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
17 |
use strict; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
18 |
use XML::Simple; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
19 |
use File::Copy; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
20 |
use Tie::File; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
21 |
use Data::Dumper; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
22 |
|
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
23 |
my $report; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
24 |
my $header_list; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
25 |
my $destfile = "stripped_headers_report.xml"; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
26 |
my $del_ok_issues = 1; # This variable determines whether to delete OK issues first. |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
27 |
my $del_comp_issues = 0; # This variable determies whether to delete Compilation errors. |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
28 |
my $del_boost_issues = 1; # This variable determies whether to delete issues for Boost API headers. |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
29 |
|
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
30 |
my $n; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
31 |
my $m; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
32 |
my $file_name; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
33 |
my $delete_node; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
34 |
|
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
35 |
if ($ARGV[1]) { |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
36 |
$report = $ARGV[0]; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
37 |
$header_list = $ARGV[1]; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
38 |
} else { |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
39 |
die "Missing parameter(s). For example: bc_filter.pl headers_report.xml public_headers.txt"; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
40 |
} |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
41 |
|
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
42 |
# Parse the input XML into hashrefs. |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
43 |
print "Parsing " . $report . "... "; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
44 |
my $current_report = XMLin("./$report", keeproot => 1, |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
45 |
forcearray => [ 'header', 'baselineversion', 'currentversion', 'timestamp', 'day', 'month', 'year', 'hour', 'minute', 'second', # |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
46 |
'haversion', 'formatversion', 'cmdlineparms', 'parm', 'pname', 'pvalue', 'knownissuesversion', 'os', 'version', 'buildweek', 'issuelist',# |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
47 |
'headerfile', 'filename', 'comparefilename', 'status', 'comment', 'issue', 'checksum', 'shortname', 'issueid', 'typeid', 'identityid', # |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
48 |
'identitydescription', 'typestring', 'cause', 'documentation', 'ignoreinformation', 'linenumber', 'severity', 'scseverity'], keyattr => [] ); |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
49 |
print "complete \n"; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
50 |
|
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
51 |
# Load Public API definitions |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
52 |
my @lines; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
53 |
tie @lines, 'Tie::File', $header_list or die ("Cannot tie file \"$header_list\". $!\n"); |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
54 |
|
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
55 |
# Get number of header files |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
56 |
my $header_num = @{$current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}}; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
57 |
print "Number of all header files with issues: $header_num \n"; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
58 |
|
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
59 |
# Delete known issues. |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
60 |
if ($del_ok_issues) { |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
61 |
$n = 0; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
62 |
while ($n < $header_num) { |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
63 |
$file_name = $current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}->[$n]->{'shortname'}->[0]; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
64 |
# Delete the node if known issue. |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
65 |
if ($current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}->[$n]->{'status'}->[0] eq "OK") { |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
66 |
print "Known issue: $file_name ...deleted\n"; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
67 |
splice(@{$current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}},$n, 1); |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
68 |
$header_num--; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
69 |
} else { |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
70 |
# print "Unknown issue: $file_name \n"; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
71 |
$n++; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
72 |
} |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
73 |
} |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
74 |
# Get number of header files again |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
75 |
$header_num = @{$current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}}; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
76 |
print "Number of remaining header files with issues: $header_num \n"; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
77 |
} |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
78 |
|
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
79 |
# Delete compilation issues. |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
80 |
# Assumption: Compilation issue is always the top issue (and probably the only one) |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
81 |
if ($del_comp_issues) { |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
82 |
$n = 0; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
83 |
while ($n < $header_num) { |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
84 |
$file_name = $current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}->[$n]->{'shortname'}->[0]; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
85 |
if (($current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}->[$n]->{'issue'}->[0]->{'typestring'}->[0] eq "has compilation errors") && # |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
86 |
($current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}->[$n]->{'status'}->[0] ne "OK")) { # Delete the node if compilation error. |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
87 |
print "$file_name has compilation errors \n"; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
88 |
splice(@{$current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}},$n, 1); |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
89 |
$header_num--; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
90 |
} else { |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
91 |
$n++; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
92 |
} |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
93 |
} |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
94 |
# Get number of header files again |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
95 |
$header_num = @{$current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}}; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
96 |
print "Number of header files with non-compilation issues: $header_num \n"; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
97 |
} |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
98 |
|
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
99 |
# Delete Boost API related issues (Boost API headers are not present in any of the Public SDK!). |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
100 |
if ($del_boost_issues) { |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
101 |
$n = 0; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
102 |
while ($n < $header_num) { |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
103 |
$file_name = $current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}->[$n]->{'shortname'}->[0]; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
104 |
# Delete the node if Boost API header. |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
105 |
if ($file_name =~ m/\\boost/) { |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
106 |
print "Boost API: $file_name \n"; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
107 |
splice(@{$current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}},$n, 1); |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
108 |
$header_num--; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
109 |
} else { |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
110 |
$n++; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
111 |
} |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
112 |
} |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
113 |
# Get number of header files again |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
114 |
$header_num = @{$current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}}; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
115 |
print "Number of non-Boost API header files: $header_num \n"; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
116 |
} |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
117 |
|
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
118 |
# Delete non-public API issues. |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
119 |
$n = 0; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
120 |
while ($n < $header_num) { |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
121 |
$file_name = $current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}->[$n]->{'shortname'}->[0]; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
122 |
$m = 0; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
123 |
$delete_node = 1; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
124 |
foreach (@lines) { # Check against header list. |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
125 |
if (lc($file_name) eq lc(@lines[$m])) { # Mark the node to NOT be deleted. |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
126 |
$delete_node = 0; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
127 |
last; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
128 |
} |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
129 |
$m++; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
130 |
} |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
131 |
# Delete the node if non-public issue. |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
132 |
if ($delete_node) { |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
133 |
print "Header file: $file_name not found in Public API definition file... deleted\n"; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
134 |
splice(@{$current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}},$n, 1); |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
135 |
$header_num--; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
136 |
} else { |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
137 |
$n++; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
138 |
} |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
139 |
} |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
140 |
|
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
141 |
# Get number of header files again |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
142 |
$header_num = @{$current_report->{'bbcresults'}->{'issuelist'}->[0]->{'headerfile'}}; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
143 |
print "Final number of header files with issues: $header_num \n"; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
144 |
|
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
145 |
# Close Public API definition file. |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
146 |
untie @lines; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
147 |
|
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
148 |
# Write new XML to dest file. |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
149 |
open OUT,">$destfile" or die("Cannot open file \"$destfile\" for writing. $!\n"); |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
150 |
print OUT XMLout($current_report, keeproot => 1); |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
151 |
close OUT; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
152 |
|
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
153 |
# Insert: <?xml version="1.0" encoding="ASCII" standalone="no" ?> |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
154 |
# <?xml-stylesheet type="text/xsl" href="BBCResults.xsl"?> |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
155 |
tie @lines, 'Tie::File', $destfile or die ("Cannot tie file \"$destfile\". $!\n"); |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
156 |
unshift @lines, "<?xml-stylesheet type=\"text/xsl\" href=\"BBCResults.xsl\"?>"; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
157 |
unshift @lines, "<?xml version=\"1.0\" encoding=\"ASCII\" standalone=\"no\" ?>"; |
e460b00fdc7b
Added tool for filtering BC header reports
Maciej Seroka <maciejs@symbian.org>
parents:
diff
changeset
|
158 |
untie @lines; |