secureswitools/swianalysistoolkit/test/tdumpregistry/testregistry.pl
changeset 0 ba25891c3a9e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swianalysistoolkit/test/tdumpregistry/testregistry.pl	Thu Dec 17 08:51:10 2009 +0200
@@ -0,0 +1,173 @@
+#
+# Copyright (c) 2007-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: 
+# Perl script that test DumpSWIRegistrytool
+#
+
+use File::Basename;
+my $scriptdir= dirname $0;
+print "Changing dir to $scriptdir\n";
+chdir $scriptdir;
+
+$logFile = "\\epoc32\\winscw\\c\\dumpregistry_test.txt";
+unlink("$logFile");
+use File::Copy;
+
+#
+#Function to write log into file
+#
+sub WriteLog {
+	my ($log) = @_;
+	unless( open($fh, ">> $logFile")) 
+		{
+		rintf STDERR "Can\'t open $logfile:$!\n";
+		return;
+		}
+	printf $fh $log;
+	printf $log;
+	close $fh;
+}
+
+
+sub registryTest {
+	my ($pkgfile) = @_[0];
+	my ($expectedResult) = @_[1];
+	my ($pkgname) = @_[2];
+	my ($vendorname) = @_[3];
+	$registryPath = ".\\data";
+	$registryOutputPath = ".\\dumpregistry-output\\";
+	$pkgfile =~ s/\.dat//;
+	WriteLog( "Package test\n\n");
+	@retval = system("DumpSWIRegistryTool.exe $registryPath -p $pkgfile > $pkgfile.log ");
+	$logMsg = sprintf "Expected code:%5d   result Code:%5d\n", $expectedResult, $?;
+	WriteLog( $logMsg);
+	$NumberOfTests++;
+	if( $? == $expectedResult) 
+		{
+		if(!($pkgfile eq 80000003))
+			{
+			my $respkg=`diff "$registryOutputPath$pkgfile.out" "$pkgfile.log"`;
+			if(length($respkg) == 0)
+				{
+				$NumberOfPassed++;
+				WriteLog("Passed\n\n");
+				}
+			else
+				{
+				$NumberOfFailed++;
+				WriteLog("Failed: Files $pkgfile.out and $pkgfile.log are not matched\n\n");
+				}
+			unlink("$pkgfile.log");
+			}
+		else
+			{
+			$NumberOfPassed++;
+			WriteLog("Passed\n\n");
+			}
+		}
+	else
+		{
+		$NumberOfFailed++;
+		WriteLog("Failed\n\n");
+		}
+
+	WriteLog( "Registry test\n\n");
+	@retval = system("DumpSWIRegistryTool.exe $registryPath -r $pkgfile \"$pkgname\" \"$vendorname\"> $pkgfile.log");
+	$logMsg = sprintf "Expected code:%5d   result Code:%5d\n", $expectedResult, $?;
+	WriteLog( $logMsg);
+	$NumberOfTests++;
+	
+	if( $? == $expectedResult) 
+		{
+		if(!($pkgfile eq 80000003))
+			{
+			my $resreg=`diff "$registryOutputPath$pkgfile.tmp" "$pkgfile.log"`;
+			if(length($resreg) == 0)
+				{
+				$NumberOfPassed++;
+				WriteLog("Passed\n\n");
+				}
+			else
+				{
+				$NumberOfFailed++;
+				WriteLog("Failed: Files $pkgfile.tmp and $pkgfile.log are not matched\n\n");
+				}
+
+			}
+		else
+			{
+			$NumberOfPassed++;
+			WriteLog("Passed\n\n");
+			}
+		unlink("$pkgfile.log");	
+		}
+	else
+		{
+		$NumberOfFailed++;
+		WriteLog("Failed\n\n");
+		}	
+	}
+
+WriteLog("DumpSWIRegistryTool test.\n\n");
+
+#
+# Counters for results
+#
+$NumberOfTests  = 0;
+$NUmberOfPassed = 0;
+$NumberOfFailed = 0;
+
+#
+# Array of contents of test pkgs and expected results
+#
+#                file name,   expected , expected log,            Title
+#				result     message
+#               ---------------------------------------------------------------------------------------------------- 
+@TestItems = (	["1000000d", 0,    , "Created",		"Registry Test for SIS files having SIS Properties","Test capabilities2","Vendor"],
+		["80000010", 0,    , "Created",		"Registry Test for SIS files having MIME Type","Test Mime-GE","Vendor"],
+		["80212345", 0,    , "Created",		"Registry Test for SIS files having Embedded and Dependency","TestSA","Vendor"],
+		["8100000b", 0,    , "Created",		"Registry Test for Big file(4MB)","BigNc","Vendor"],
+		["811111f8", 0,    , "Created",		"Registry to check operators","testexpressions_operators","Unique Vendor Name"],
+		["811111fb", 0,    , "Created",		"Registry to for sis file with else options (ConditionalEvaluation)","testexpressions_else","Unique Vendor Name"],
+		["811111fc", 0,    , "Created",		"Registry to check sis file with else if options (ConditionalEvaluation)","testexpressions_elseif","Unique Vendor Name"],
+		["81111107", 0,    , "Created",		"Registry Test for MultiLanguage","MultiLanguageOption-FR","Vendor"],
+		["81115000", 0,    , "Created",		"Registry Test for executable in embedded","053177c_0","Unique Vendor Name"],
+		["81115011", 0,    , "Created",		"Registry Test with no executable","053177c_0","Unique Vendor Name"],
+		["81115013", 0,    , "Created",		"Registry Test with 2 Embedded SIS files executable","053177c_3","Unique Vendor Name"],
+	#	["81231235", 0,    , "Created",		"Registry Test for Partial Upgrade","TestAppInUse Suite","Unique Vendor Name"],
+		["81231235", 0,    , "Created",		"Registry Test for Patch","testappinuse_patch","Unique Vendor Name"],
+		["a0000206", 0,    , "Created",		"Registry Test for SIS files having multiple Data files","3 Data Files","Symbian"],
+		["81000008", 0,    , "Created",		"Registry Test for File NULL","File Null - Remove a file created in another apps import directory","Symbian"],
+	#	["80000003",768,    , "Created",	"Registry Test for old registry format","Depend-EN","Vendor"],
+	     );
+
+#
+# Do test for each elements of TestItems array
+#
+for my $Test ( @TestItems )  
+	{
+	$testid = sprintf "SEC-SWI-I- REGISTRY -000%d\n",$NumberOfTests+1;
+	WriteLog($testid);
+	$logMsg = sprintf "%s\n", $Test->[3];
+	WriteLog($logMsg);
+	registryTest($Test->[0], $Test->[1],$Test->[4],$Test->[5]);
+	}
+
+#
+# Display the result
+#
+WriteLog("\n\nTests completed OK\n");
+WriteLog(sprintf "Run: %d\n", $NumberOfTests );
+WriteLog(sprintf "Passed: %d\n", $NumberOfPassed );
+WriteLog(sprintf "%d tests failed out of %d\n", $NumberOfFailed, $NumberOfTests );