installationservices/swcomponentregistry/test/tscr/scripts/performance_log_parser.pl
--- a/installationservices/swcomponentregistry/test/tscr/scripts/performance_log_parser.pl Tue Aug 31 15:21:33 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,178 +0,0 @@
-#
-# Copyright (c) 2008-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:
-# Script: performance_log_parser.pl
-#
-
-use strict;
-use FileHandle;
-
-my $Test_Case_Start_Tag = "START_TESTCASE";
-my $Test_Case_End_Tag = "END_TESTCASE";
-my $Event_print = "PERFORMANCE_LOG_INFORMATION";
-my $Test_Case_Max_Duration = "TEST_CASE_MAXIMUM_ALLOWED_DURATION";
-my $ScrEventCode = 1;
-
-my $defInputFile = "/epoc32/winscw/c/logs/testexecute/tscr_performance.htm";
-my $defOutputFile = "/epoc32/winscw/c/logs/scr_performance.txt";
-
-sub millisec
- {
- no warnings 'uninitialized';
- my ($mytime) = @_ ;
- $mytime =~ /([0-9]*):([0-9]*):([0-9]*):([0-9]*)$/;
- my $milisec = $4;
- my $sec = $3;
- my $min = $2;
- my $hour = $1;
-
- my $msecs = ($milisec / 1000) + ($sec *1000) + ($min * 60000) + ($hour * 3600000);
- return $msecs;
- }
-
-sub process_log_file
- {
- my ($data_file, $output_FH) = @_;
- print $output_FH "#Test Case Name,Maximum Duration(ms),Actual Duration(ms),Result\n";
-
- # enable reading whole file as one chunk
- my $SAVE_RS = $/;
- undef $/;
-
- # open and read the log file in a single line
- open(DAT, $data_file) || die("Could not open file $data_file!");
- my $raw_data=<DAT>;
- close(DAT);
- $raw_data=~ s/\n/ /g;
-
- # restore previous record separator
- $/ = $SAVE_RS;
-
- my $num_passed = 0;
- my $num_failed = 0;
-
- while ($raw_data && $raw_data =~ /$Test_Case_Start_Tag\s+(\S+)/)
- {
- # step through the file in chunks delimited by the start/end test case tags.
-
- my $test_case_name = $1;
- my ($test_case_data) = ($raw_data =~ /$Test_Case_Start_Tag(.*?)$Test_Case_End_Tag/);
-
- if (not $test_case_data)
- {
- print STDERR "Error: Test case: $test_case_name: Suspected missing END_TESTCASE tag.\n";
- }
-
- ($raw_data) = ($raw_data =~ /$Test_Case_End_Tag(.*)/);
- ($raw_data) = ($raw_data =~ /($Test_Case_Start_Tag.*)/) if $raw_data;
-
- my ($max_duration) = ($test_case_data =~ /$Test_Case_Max_Duration,([0-9]+)/);
- if (!defined $max_duration)
- {
- $max_duration = 0;
- }
-
- my $start_time = "0";
- my $end_time = "0";
- my $first = 1;
-
- while ($test_case_data and ($test_case_data =~ /$Event_print(.*)/) )
- {
- # get the event time. if this is the first time value in the chunk, it is the start time of the event.
- #otherwise, continue until reaching the last time value.
- my $start_log_msg = $1;
-
- $start_log_msg =~ /,(.+?)\s(.*)/;
-
- if($first == 1)
- {
- $start_time = $1;
- $first = 0;
- }
- else
- {
- $end_time = $1;
- }
-
- $test_case_data = $2;
- }
-
- if(!($start_time eq "0") && !($end_time eq "0"))
- {
- my $actual_duration = millisec($end_time) - millisec($start_time);
- my $result;
- if( $actual_duration <= $max_duration)
- {
- $result = "Passed";
- $num_passed += 1;
- }
- else
- {
- $result = "Failed";
- $num_failed += 1;
- }
-
- print $output_FH "$test_case_name,$max_duration,$actual_duration,$result\n";
- }
- }
- print $output_FH (sprintf "\n\n%d tests failed out of %d\n", $num_failed, $num_passed+$num_failed);
- }
-
-
-sub usage
- {
- print <<USAGE;
-usage:
- performance_log_parser.pl <input_file> <output_file>
-
- <input_file>: A log file to process
- (default- $defInputFile)
-
- <out_file>: Final output file name
- (default- $defOutputFile)
-USAGE
- }
-
-
-sub Main
- {
- my @argv = @_;
- # if input and output files are not provided, default ones will be used
- my $input_file = $defInputFile;
- my $output_file = $defOutputFile;
-
- if(@argv > 2)
- {
- usage;
- exit;
- }
- elsif(@argv == 2)
- {# input and output files are provided, don't use default ones
- $input_file = shift @argv;
- $output_file = shift @argv;
- }
-
- my $outputFH = \*STDOUT; # results to STDOUT by default
-
- if (defined $output_file)
- {
- $outputFH = FileHandle->new;
- $outputFH->open("> $output_file") or die "Error: File $output_file: $!";
- }
- process_log_file($input_file,$outputFH);
-
- $outputFH->close;
-}
-
-Main(@ARGV);
\ No newline at end of file