--- a/testexecmdw/tef/tef/test/tools/tefcmp.pm Fri Sep 03 07:55:01 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,451 +0,0 @@
-#
-# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "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:
-#
-
-require Algorithm::Diff;
-#ppm install Algorithm-Diff
-
-# Globle variables
-# compare result counter
- {
- $PASSCounter = 0;
- $DIFFCounter = 0;
- $MISSCounter = 0; #only existed in BaseLine directory
- $NEWADDCounter = 0; #only existed in DABS directory
- $IGNCounter = 0; # this is some case cann't using this tool to comapre
- }
-
- $GlobleisLowCases = 0;
- $CmpDetail = 0; # this is detailed compare information switch
- $ShowPassCmp = 0; # only output negtive compare result.
- $cmpResultF = "dailyregresultfile.txt";
- my $CurrentDir = ".";
-
-sub compareBase2DABS_ReturnEmailBody
-{
- my ( $baseLineDir, $DABSResultDir,$currentpath) = @_;
- $CurrentDir = $currentpath; #save to inner pm current variable
- compareBase2DABS( $baseLineDir, $DABSResultDir);
- my $mydir = "$currentpath\\$cmpResultF";
- print $mydir;
- my @fileArr = read_file($mydir);
- my $buf;
- foreach $item (@fileArr){
- $buf = $buf . $item . "<br>\n";# for lotus not mail.
- }
- return $buf;
-}
-#main
-sub compareBase2DABS
-{
- my ( $baseLineDir, $DABSResultDir, $argv3, $argv4 ) = @_;
- $CurrentDir = getcwd;
- # print $argv1." VS ".$argv2."\n";
- # my($GlobleisLowCases);
-
-
-
- if (!open( DailyRegResultOutPut, ">$cmpResultF" ))
- {
- print "open $DailyRegResultOutPut failed.";
- }
- print DailyRegResultOutPut "Start of Result compare\n";
-
-
- compare_BaseLineFiles_with_DABSResult( $baseLineDir, $DABSResultDir );
- checking_TestCase_no_BaseLine( $baseLineDir, $DABSResultDir );
-
- print DailyRegResultOutPut "End of Result compare\n";
- SummaryCounter2File();
- close(DailyRegResultOutPut);
-}
-#main
-# gerarate the baseline dir of tef code
-# this is utility function for DABS
-sub makeBaseLineDir
-{
- my ( $device, $build ) = @_;
- my ( $device1, $build1 );
- my ($dirResult);
- $dirResult = "\\testexecute\\Test\\baseline";
- if ( $device =~ /arm/i ) {
- $device1 = "\\h4";
- }
- elsif ( $device =~ /winscw/i ) {
- $device1 = "\\emulator";
- }
- else {
- return "error_path";
- }
-
- if ( $build =~ /urel/i ) {
- $build1 = "\\urel";
- }
- elsif ( $build =~ /udeb/i ) {
- $build1 = "\\udeb";
- }
- else {
- return "error_path";
- }
- return $dirResult =
- $dirResult . $device1 . $build1; #\testexecute\Test\baseline\h4\udeb
-}
-
-sub SummaryCounter2File
-{
- my($seperator,$eol);
- $seperator = " = ";
- $eol = "\n";
-
- print DailyRegResultOutPut $eol,"*******************" ,$eol,"Compare Summary: ",$eol;
-
-
- print DailyRegResultOutPut "Pass", $seperator, $PASSCounter,$eol;
- print DailyRegResultOutPut "Diff", $seperator, $DIFFCounter,$eol;
- print DailyRegResultOutPut "Existing only on Base Line" , $seperator, $MISSCounter,$eol;
- print DailyRegResultOutPut "Existing only on DABS", $seperator, $NEWADDCounter,$eol;
- print DailyRegResultOutPut "Needs to manual check", $seperator, $IGNCounter,$eol;
-}
-
-sub checking_TestCase_no_BaseLine {
- my ( $baseLineDir, $DABSResultDir ) = @_;
-
- # read DABS file list
- my $thisdir;
- opendir( $thisdir, $DABSResultDir );
- my @DABSFiles = readdir($thisdir);
- closedir($thisdir);
-
- # read base file list
- opendir( $thisdir, $baseLineDir );
- my @baseFiles = readdir($thisdir);
- closedir($thisdir);
-
- # New test case without base line
- my ( $DABSfile, $basefile );
-
- # compare all the file name
- foreach $DABSfile (@DABSFiles) {
- if ( $DABSfile =~ /\.htm/ ) {
- my ( $i, $match );
- for ( $i = 0, $match = 0 ; $i < @baseFiles ; $i++ ) {
- $basefile = @baseFiles[$i];
- if ( $DABSfile eq $basefile ) {
- $match = 1;
- last;
- }
- }
-
- # the new test case file name found!
- if ( $match != 1 ) {
- print DailyRegResultOutPut
- "$DABSfile is a new test case without baseline.\n";
- $NEWADDCounter++;
- }
- }
-
- }
- return;
-}
-
-sub compare_BaseLineFiles_with_DABSResult {
- my ( $baseLineDir, $DABSResultDir ) = @_;
- #chdir($baseLineDir) ;
- if ( !-e $baseLineDir)
- {
- print DailyRegResultOutPut
- "[Fatal Error]: Can not open $baseLineDir.\n";
- return;
- }
- my $thisdir;
- opendir( $thisdir, $baseLineDir );
- my @baseLineFiles = readdir($thisdir);
- closedir($thisdir);
- my $i = 0;
- my @BaseFileSet;
- my @DABSFileSet;
-
-# generate the file path
- my $count2 = 0;
- while ( $i < @baseLineFiles ) {
- if ( ( !-d @baseLineFiles[$i] )
- && ( @baseLineFiles[$i] =~ /\.htm/ )
- ) # (@files[$count] =~/\.htm/) to select all *.htm files
- {
- @BaseFileSet[$count2] = $baseLineDir . "\\" . "@baseLineFiles[$i]";
-
- # print "@srcfiles[$i] \n";
- @DABSFileSet[$count2] =
- $DABSResultDir . "\\" . "@baseLineFiles[$i]";
-
- # print "@dstfiles[$i] \n";
- $count2++;
- }
- $i++;
- }
-
- # file context compare
- $i = 2; #ignore .. and . files
- while ( $i < @BaseFileSet ) {
- if ( @DABSFileSet[$i] =~ /dt-tef-concurrent/
- || @DABSFileSet[$i] =~ /dt-tef-performance-0001/
- || @DABSFileSet[$i] =~ /dt-tef-command-line/
- ) {
- #skip concurrent compare
- print DailyRegResultOutPut @DABSFileSet[$i],
- " compare has being ignored. Plese checke your self.\n";
- $IGNCounter++;
- }
- elsif ( !-e @BaseFileSet[$i] ) {
-# this case will not TRUE because only baseline's file name will be compared.
-# see the upper while {....}
- print DailyRegResultOutPut
- "@BaseFileSet[$i] does not exist in baseline.\n";# is a new test case without baseline
- #baseLineFiles[$i] only contain file name.
- $NEWADDCounter++;
- }
- elsif ( !-e @DABSFileSet[$i] ) {
- print DailyRegResultOutPut
- "$DABSFileSet[$i] does not exist in DABS.\n";
- #baseLineFiles[$i] only contain file name.
- $MISSCounter++;
- }
- else {
- FileCompare( @BaseFileSet[$i], @DABSFileSet[$i] );
- }
- $i++;
- }
- #chang back to the orginal dir.
- chdir($CurrentDir); # don't die this fail not change
-}
-
-sub FileCompare {
- my ( $argv1, $argv2 ) = @_;
- @array1 = file_array( $argv1, $GlobleisLowCases );
- @array2 = file_array( $argv2, $GlobleisLowCases );
-
- # This example produces traditional 'diff' output:
- my $diff =
- Algorithm::Diff->new( \@array1, \@array2 ); # this must done in main
- my ($result);
- $result = TEF_Compare_Diff($diff);
- if ( $result == 0 ) #file diff
- {
- print DailyRegResultOutPut $argv2, " different with baseline.\n";
- $DIFFCounter++;
- }
- else {
- if ( $ShowPassCmp == 1 )
- {
- print DailyRegResultOutPut $argv2, " PASS\n";
- }
- $PASSCounter++;
- }
-
- # if ( $argv4 == "-D" ) {
- # Save_Tailored_to_file( "PR1", @array1 );
- # Save_Tailored_to_file( "PR2", @array2 );
- # }
-
- # print @file1[0].@file2[0];
- return;
-}
-
-sub file_array {
- my ( $filename, $isLowCase ) = @_;
- # if ($isLowCase == 1)
- # {
- # print "file_arrayisLowCases = 1";
- # print "\n";
- # }
- # else
- # {
- # print "file_arrayisLowCases = 0";
- # print "\n";
- # }
- my @readarray;
- @readarray = read_file($filename);
- return @readarray = remove_prefix_from_arrary( @readarray, $isLowCase );
-}
-
-sub read_file {
- my ($read_file1) = @_;
- if(!open( IN1, $read_file1 ) )
- {
- print DailyRegResultOutPut "[Fatal Error]: Can not open the $read_file1 file !\n" ;
- }
- my @content = <IN1>;
- close(IN1);
- return @content;
-}
-sub TEF_Compare_Diff {
-
- # This example produces traditional 'diff' output:
- # my $diff = Algorithm::Diff->new( \@arr1, \@arr2 );
-
- my ($diff) = @_;
- my ($BoolSame);
- $BoolSame = 1; #file same
- $diff->Base(1); # Return line numbers, not indices
- while ( $diff->Next() ) {
- next if $diff->Same();
- if ( $CmpDetail == 1 ) {
- my $sep = '';
- if ( !$diff->Items(2) ) {
- printf DailyRegResultOutPut "%d,%dd%d\n",
- $diff->Get(qw( Min1 Max1 Max2 ));
- }
- elsif ( !$diff->Items(1) ) {
- printf DailyRegResultOutPut "%da%d,%d\n",
- $diff->Get(qw( Max1 Min2 Max2 ));
- }
- else {
- $sep = "---\n";
- printf DailyRegResultOutPut "%d,%dc%d,%d\n",
- $diff->Get(qw( Min1 Max1 Min2 Max2 ));
- }
- print DailyRegResultOutPut "< $_" for $diff->Items(1);
- print DailyRegResultOutPut $sep;
- print DailyRegResultOutPut "> $_" for $diff->Items(2);
- }
- $BoolSame = 0; #file diff
- }
- return $BoolSame;
-}
-
-sub Save_Tailored_to_file {
- my ( $write_file1, @array ) = @_;
-
- if (!open( OUT, "| cat >$write_file1" ) )
- {
- print DailyRegResultOutPut "[Fatal Error]: Can NOT open the $write_file1 file !\n" ;
- return ;
- }
- my $i = 0;
- my $item;
- while ( $i < @array ) {
- $item = @array[ $i++ ];
- print OUT $item;
- }
- close(OUT);
- return;
-}
-
-sub output_arrary {
- my (@array) = @_;
- my $i = 0;
- while ( $i < @array ) {
- $item = @array[ $i++ ];
- print $item ;
- }
-}
-
-sub remove_prefix_from_arrary {
- my ( @_array, $LowCase ) = @_;
- my $i = 0;
-
- my $item;
- while ( $i < @_array ) {
- $item = @_array[$i];
- $item = remove_time_stamp($item);
- $item = remove_INFOPRINT($item);
- $item = remove_remote_panic($item);
- $item = remove_time_infomation($item);
- @_array[$i] = remove_script_linenum($item);
-
- if ( $GlobleisLowCases == 1 ) {
- @_array[$i] = lc( @_array[$i] );
- }
- $i++;
- }
- return @_array;
-}
-
-sub remove_script_linenum {
- my ($srcstring) = @_;
-
- # search for
- # ....\dt-tef-testclient-0009.script Line = 22 Command = END_TESTCASE...
- $_ = $srcstring;
- if (/[.]*.script [Ll]ine = [\d]+ [Cc]ommand =[.]*/) {
-
- # print ":)\n";
- $srcstring =~
-s/[.]*.script [Ll]ine = [\d]+ [Cc]ommand =[.]*/\.script line = command =/;
- }
- return $srcstring;
-}
-
-sub remove_remote_panic {
- my ($srcstring) = @_;
- $_ = $srcstring;
- if (/[Rr]emote [Pp]anic \d/) {
-
- # print ":)\n";
- return $srcstring = ""; # remove panic string
- }
- else {
-
- # print ":(\n";
- return $srcstring;
- }
-}
-
-sub remove_INFOPRINT {
- my ($srcstring) = @_;
- $_ = $srcstring;
-
-# if (/(INFO|ERROR|WARN|HIGH|MEDIUM|LOW)[ ]- [0-9]+[ ][a-zA-Z0-9_-]+[.][a-zA-Z]* [0-9]+/) {
-# the file name to strict for "03:39:57:980 INFO - 2607 DIR\DIR\ 221 GetCPPModuleName"
-# "DIR\DIR\" not a legeal file name,
-# so I change the regx
- if (
-/(INFO|ERROR|WARN|HIGH|MEDIUM|LOW)[ ]- [0-9]+[ ][a-zA-Z0-9_.-\\]* [0-9]+/
- )
- {
-
- # print ":)\n";
- $srcstring =~ s/[ ]- [0-9]+[ ][a-zA-Z0-9_.-\\]* [0-9]+//;
- }
-## now else no use.
- # else
- # {
- # print ":(\n";
- # }
- return $srcstring;
-}
-sub remove_time_stamp {
- my ($srcstring) = @_;
- $_ = substr( $srcstring, 0, 12 );
-
- if (/[0-9]+:[0-9]+:[0-9]+:[0-9]+/) {
- return substr( $srcstring, 12 );
- }
-}
-sub remove_time_infomation {
- my ($srcstring) = @_;
- if ($srcstring =~ /[.]*[0-9]+\/[0-9]+\/[0-9]+ [0-9]+\:[0-9]+\:[0-9]+ [apAP][.]*/) {
- #print ":)\n";
- $srcstring =~ s/[.]*[0-9]+\/[0-9]+\/[0-9]+ [0-9]+\:[0-9]+\:[0-9]+ [apAP][.]*/$1/;
- }
-# else
-# {
-# print ":(\n";
-# }
- return $srcstring;
-}
-
-
-1;
\ No newline at end of file