--- /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 <template_dir> <test_result_dir> \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 = <BASELINEFILE>;
+ my @testresultarray = <TERESULTFILE>;
+ 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);
+ }
+
+}