testexecmdw/tef/tef/test/tools/tefcmp.pm
branchRCL_3
changeset 3 9397a16b6eb8
parent 1 6edeef394eb7
--- 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