diff -r 59bb7c4d6172 -r 0f5e3a7fb6af buildframework/helium/tools/compile/scanbuildlog.pl --- a/buildframework/helium/tools/compile/scanbuildlog.pl Fri Feb 05 11:59:41 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,157 +0,0 @@ -#!perl -w - -#============================================================================ -#Name : scanbuildlog.pl -#Part of : Helium - -#Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -#All rights reserved. -#This component and the accompanying materials are made available -#under the terms of the License "Eclipse Public License v1.0" -#which accompanies this distribution, and is available -#at the URL "http://www.eclipse.org/legal/epl-v10.html". -# -#Initial Contributors: -#Nokia Corporation - initial contribution. -# -#Contributors: -# -#Description: -#============================================================================ - -# ============================================================================== -# %name: scanbuildlog.pl % -# Part of: juno_build -# -# %version: 1 % -# %date_modified: Mon Feb 06 17:21:13 2006 % -# -# See POD text at the end of this file for usage details. -# ============================================================================== - -use strict; -use Getopt::Long; -use Pod::Usage; -use XML::Simple; -use lib "$ENV{'BUILD_DRIVE'}\\epoc32\\tools"; -use Scanlog; -use XML::Parser::Expat; - -my $help = 0; -my $man = 0; -my $unique = 0; -my $logfilename = ''; - -GetOptions('unique' => \$unique, - 'log=s' => \$logfilename, - 'man' => \$man, - 'help|?' => \$help) - or pod2usage(2); -pod2usage(1) if $help; -pod2usage(-exitstatus => 0, -verbose => 2) if $man; -$logfilename = shift unless $logfilename; -my $logfile; - -if ($logfilename) -{ - open(LOGFILE, $logfilename) or die("Can't open '$logfilename': $!\n"); - $logfile = \*LOGFILE; -} -else -{ - $logfile = \*STDIN; -} - -# -# -print < -EOT -print("\n"); - -my %logentry = (); -my $phase = ''; -my $component = ''; -my $parser = new XML::Parser::Expat; - -while (<$logfile>) -{ - chomp; - next if Scanlog::CheckForIgnore($_); - - ($phase = $1) =~ s/\\/\\\\/ and next - if /^=== (.+) started ... ... .. (..):(..):(..)/; - $phase = $1 and next if /^=== (.+) started ... ... .. (..):(..):(..)/; - $component = $1 and next if $phase && /^=== $phase == (\S+)/; - if ($phase && /^=== $phase finished ... ... .. (..):(..):(..)/) - { - $component = ''; - next; - } - - my $logrec = {line => $., - content => $parser->xml_escape($_)}; - - $logrec->{severity} = 'info' - if Scanlog::CheckForMigrationNotes($_) - or Scanlog::CheckForRemarks($_); - - if ( Scanlog::CheckForErrors($_) - or Scanlog::CheckForNotBuilt($_) - or Scanlog::CheckForMissing($_) ) - { - $logrec->{severity} = 'error'; - } - $logrec->{severity} = 'warn' if Scanlog::CheckForWarnings($_); - next unless $logrec->{severity}; - - print XMLout($logrec, rootname => 'logentry', noescape => 0); -} - -print("\n"); - -__END__ - -=head1 NAME - -scanbuildlog - Scan EBS build log for errors and warnings - -=head1 SYNOPSIS - -perl scanbuildlog.pl [-h] | -l - -=head1 OPTIONS - -=over 8 - -=item B<-help> - -Print a brief help message and exits. - -=item B<-man> - -Prints the manual page and exits. - -=item B<-l> - -Specify the log file to parse. - -=back - -=head1 DESCRIPTION - -Prints out a summary of the errors, warnings and informational -messages found in the log file in an XML format conforming to the -following DTD: - - - - - -=head1 SEE ALSO - -=cut