--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swianalysistoolkit/test/tinstallfilestatus/testinstallstatus.pl Thu Dec 17 08:51:10 2009 +0200
@@ -0,0 +1,142 @@
+#
+# 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 DumpInstallFileStatustool
+#
+
+use File::Basename;
+my $scriptdir= dirname $0;
+print "Changing dir to $scriptdir\n";
+chdir $scriptdir;
+
+$logFile = "\\epoc32\\winscw\\c\\dumpinstallstatus_test.txt";
+use File::Copy;
+use Cwd;
+
+#
+#Function to write log into file
+#
+sub WriteLog
+ {
+ my ($log) = @_;
+ unless( open($fh, ">> $logFile"))
+ {
+ printf STDERR "Can\'t open $logfile:$!\n";
+ return;
+ }
+ printf $fh $log;
+ printf $log;
+ close $fh;
+ }
+
+
+sub installstatus
+ {
+ my ($pkgfile) = @_[0];
+ my ($expectedResult) = @_[1];
+ my ($outputLog) = @_[2];
+ $outputLog =~ s/\.log//;
+ $neededfolder="";
+ $neededfile="";
+ @retval = system("DumpInstallFileStatusTool.exe $pkgfile> $outputLog.log");
+ $logMsg = sprintf "Expected code:%5d result Code:%5d\n", $expectedResult, $?;
+ WriteLog( $logMsg);
+ $NumberOfTests++;
+ if( $? == $expectedResult)
+ {
+ my $res=`diff "$outputLog.out" "$outputLog.log"`;
+ if(length($res) == 0)
+ {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else
+ {
+ $NumberOfFailed++;
+ WriteLog("Failed: Files $outputLog.out and $outputLog.log are not matched\n\n");
+ }
+ }
+ else
+ {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+ unlink("$outputLog.log");
+ sleep(1);
+ }
+
+
+unlink($logFile);
+WriteLog("DumpinstallfilestatusTool test.\n\n");
+#
+# Counters for results
+#
+$NumberOfTests = 0;
+$NUmberOfPassed = 0;
+$NumberOfFailed = 0;
+#
+# Array of contents of tests and expected results
+#
+# file name, expected , expected log, Title
+# result message
+# ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------
+@TestItems = ( ["data\\testfor2exes_unsigned.SIS data\\swicertstore.dat" ,0, , "Created", "Unsigned SIS File", "installstatus-output\\unsignedSIS.log"],
+ ["data\\testfor2exes_invaidsumchain.SIS data\\swicertstore.dat ReadUserData WriteUserData ReadDeviceData WriteDeviceData", 0, , "Created", "SIS File having executable whose capabiltites is satisfied by signing certificates in conjuction with User Specified Capabilities\n(ReadUserData WriteUserData ReadDeviceData WriteDeviceData)", "installstatus-output\\multichain_usercaps1.log"],
+ ["data\\testfor2exes_multichain.SIS data\\swicertstore.dat" ,0, , "Created", "SIS File having executable whose capabiltites is satisfied by signing certificates.", "installstatus-output\\multichain_nomissingcaps.log"],
+ ["data\\testfor2exes_multichain.SIS data\\swicertstore.dat Location" ,0, , "Created", "SIS File having executable whose capabiltites are neither satisfied by signing certificates nor by signing certificates in conjuction with User Specified Capabilities", "installstatus-output\\multichain_missingcaps.log"],
+ ["data\\testfor2exes_devcert.SIS data\\swicertstore.dat",0, , "Created", "SIS File signed with developer certificate (granting ReadUserData,WriteUserData and Location) and not validated by certstore.\n Hence SIS File having executable whose capabiltites are not satisfied by signing certificates .", "installstatus-output\\Devcerts.log"],
+ ["data\\testfor2exes_multichain.SIS data\\corrupted.dat" ,1792, , "File format error", "Test for installfilestatus with corrupted certstore", "installstatus-output\\corrupteddat.log"],
+ ["data\\corrupted.sis data\\swicertstore.dat" ,1536, , "File format error", "Test for installfilestatus with corrupted sis file", "installstatus-output\\corruptedsis.log"],
+ );
+
+
+
+
+#
+# Do test for each elements of TestItems array
+#
+for my $Test ( @TestItems )
+ {
+ $testid = sprintf "SEC-SWI-I-DUMPINSTALLFILESTATUS -000%d\n",$NumberOfTests+1;
+ WriteLog($testid);
+ $logMsg = sprintf "%s\n", $Test->[3];
+ WriteLog($logMsg);
+ installstatus($Test->[0], $Test->[1],$Test->[4]);
+ }
+
+
+opendir(DIR, ".\\Chain");
+while (defined($file=readdir(DIR)))
+ {
+ $dirname="chain\\";
+ $file =~ s/\.pem//;
+ $dirname.= $file;
+ if(-e "$dirname.pem")
+ {
+ unlink("$dirname.pem");
+ }
+ close(DIR);
+ }
+$dirpath = "Chain";
+rmdir($dirpath);
+unlink("Test.txt");
+unlink("installstatus.txt");
+
+#
+# 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 );