diff -r 000000000000 -r 3e07fef1e154 testexecfw/tef/test/tools/filecompare2.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/testexecfw/tef/test/tools/filecompare2.pl Mon Mar 08 15:03:44 2010 +0800 @@ -0,0 +1,147 @@ +# +# 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: +# + + +#main program starts +my ($srcdir, $dstdir) =@ARGV; +if (@ARGV != 2) +{ + print ("Usage: perl filecompare2.pl \n"); + print ("E.g. perl filecompare2.pl d:\template d:\testresult \n"); + print ("the compare result file is located at d:\compareresult.txt \n"); + exit; +} +print "$srcdir \n"; +print "$dstdir \n"; +open (CompareResultFile, ">d:\\compareresult.txt") || die ("open compareresult.txt failed"); +chdir ($srcdir) || die "chdir to $srcdir faield.\n"; +my $thisdir ; +opendir ($thisdir, $srcdir); +my @files = readdir($thisdir); +closedir($thisdir); +$count =1; +my @srcfiles; +my @dstfiles; + +my $count2=1; +while ($count < @files) +{ + if ( (!-d @files[$count] )&& (@files[$count] =~/dt-tef-command-line-/)) # (@files[$count] =~/\.htm/) to select all *.htm files + { + @srcfiles[$count2] =$srcdir . "\\" . "@files[$count]"; + print "@srcfiles[$count] \n"; + @dstfiles[$count2] = $dstdir ."\\" . "@files[$count]"; + print "@dstfiles[$count] \n" ; + $count2++; + } + $count++; +} +$count = 1; +while ($count < @srcfiles) +{ + &filecompare(@srcfiles[$count], @dstfiles[$count]); + $count++; +} +close( CompareResultFile); +# end of the main program + +sub filecompare +{ +my($srcfile, $dstfile) = @_; +#open (BASELINEFILE, "$srcfile") || die ("Could not open Baseline file $srcfile"); +#open (TERESULTFILE, "$dstfile") || die ("Could not open Test Result file $dstfile"); + if ( ! -e $srcfile) + { + print ("$srcfile does not exist \n"); + print CompareResultFile ("$srcfile does not exist \n"); + return; + } + elsif ( !-e $dstfile) + { + print ("$dstfile does not exist \n"); + print CompareResultFile ("$dstfile does not exist \n"); + return; + } + if (open (BASELINEFILE, "$srcfile") && open (TERESULTFILE, "$dstfile") ) + { + my @baselinearray = ; + my @testresultarray = ; + my $MisMatchNum = 0; + close (BASELINEFILE); + close(TERESULTFILE); + my $linecount = 1; + my $BaselineRowContent; + my $BaselineRowContentChop; + my $TestresultRowContent; + my $TestresultRowContentChop; + my $choplength = 25; # the first 26 characters contains time information and thread no which change every run. + my $flag = 0; + + while ($linecount <= @baselinearray) + { + $BaselineRowContent = lc(@baselinearray[$linecount-1]); + $TestresultRowContent = lc(@testresultarray[$linecount-1]); + + if ($flag) # onlly the line after the "TestExecute Started " are to be compared, before that line are report title + { + $BaselineRowContentChop = $BaselineRowContent; + $TestresultRowContentChop = $TestresultRowContent; + + substr ($BaselineRowContentChop,0,$choplength)=""; + substr ($TestresultRowContentChop,0,$choplength)=""; + + if ($BaselineRowContentChop ne $TestresultRowContentChop) + { + print ("$srcfile line $linecount does not match \n"); + print CompareResultFile ("$srcfile line $linecount does not match \n"); + $MisMatchNum++; + } + else #if two lines match + { + # comment the below because they print too much information, they can be uncommented when debugging + #print ("$srcfile line $linecount match \n"); + #print CompareResultFile (" $srcfile line $linecount match \n"); + #print CompareResultFile (" $srcfile: line $linecount: $BaselineRowContentChop \n"); + #print CompareResultFile (" $dstfile: line $linecount: $TestresultRowContentChop \n"); + } + } + else + { + if ( $BaselineRowContent =~/TestExecute Started/i) # set flag if it meets the line containing "TestExecute Started " , the lines after that line are to be compared, before that line are report title + { + $flag++; + # print "the flag is: $flag \n"; + + } + } + $linecount++; + + } + if ($MisMatchNum == 0) + { + print ("$srcfile and $dstfile match \n"); + print CompareResultFile (" $srcfile and $dstfile match \n"); + } + } + else + { + print ("$srcfile or $dstfile can not open \n"); + print CompareResultFile ("$srcfile or $dstfile can not open \n"); + close (BASELINEFILE); + close(TERESULTFILE); + } + +}