--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cryptomgmtlibs/securitytestfw/test/autotesting/testMakesis.pl Wed Jul 08 11:25:26 2009 +0100
@@ -0,0 +1,2898 @@
+#
+# Copyright (c) 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:
+#
+
+#
+# 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 the License "Symbian Foundation License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Perl script that creates PKG files and test MAKESIS tools with different ranges
+#
+#
+
+$logFile = "/epoc32/winscw/c/makesis_test.txt";
+$makesisExeLocation = "/epoc32/tools/makesis";
+$dumpsisExeLocation = "/epoc32/tools/dumpsis";
+
+sub GetTmpFilesCount()
+{
+ # get a number of temp files
+ if ($^O =~ /^MSWIN32$/i)
+ {
+ my $dirname = "$ENV{'TEMP'}";
+ opendir ( DIR, "$dirname" ) or die ( "Can't open dir: $dirname" ); #!
+ my @List = readdir DIR;
+ closedir DIR;
+
+ my @TmpFiles = grep( /^~SI.*.tmp/ , @List );
+ }
+ else
+ {
+ my $dirname = "/tmp/";
+ opendir ( DIR, "$dirname" ) or die ( "Can't open dir: $dirname" ); #!
+ my @List = readdir DIR;
+ closedir DIR;
+
+ my @TmpFiles = grep( /tmp*/ , @List );
+ }
+
+ my $TmpCountBefore = @TmpFiles;
+
+ return $TmpCountBefore;
+}
+
+#
+#Function to write log into file
+#
+sub WriteLog {
+ my ($log) = @_;
+ #public $logfile;
+
+ unless( open($fh, ">> $logFile")) {
+ printf STDERR "Can\'t open $logfile:$!\n";
+ return;
+ }
+ printf $fh $log;
+ printf $log;
+ close $fh;
+}
+
+
+#
+# Function to create a file (test.txt or any PKG)
+#
+sub CreateFile {
+ my ($filename, $contents) = @_;
+
+ unless (open($fh, "> $filename")) {
+ printf STDERR "Can't open $filename: $!\n";
+ return;
+ }
+ print $fh $contents;
+ close $fh;
+
+
+}
+
+#
+# Function to check the log file of the makesis result
+#
+sub CheckLog {
+ my ($pkgfile) = @_[0];
+ my ($expectedLog) = @_[1];
+
+ $logMsg = sprintf "Expected Log: %s\n", $expectedLog;
+ WriteLog( $logMsg);
+
+ unless (open($resultlog, "$pkgfile.log")) {
+ printf STDERR "Can't open $pkgfile.log: $!\n";
+ return 0;
+ }
+
+ foreach $line (<$resultlog>) {
+ if ( $line =~ m/\Q$expectedLog\E/i) {
+ close($resultlog);
+ return 1;
+ }
+ }
+ close($resultlog);
+ return 0;
+}
+
+#
+# Run MAKESIS with prepared pkg file, log and administrate its result
+#
+sub MakeSISFile {
+
+ my ($pkgfile) = @_[0];
+ my ($expectedResult) = @_[1];
+ my ($expectedLog) = @_[2];
+ $pkgfile =~ s/\.pkg//;
+
+ if($pkgfile ne "testinterpretflag") {
+ @retval = system("$makesisExeLocation -v $pkgfile.pkg $pkgfile-tmp.sis > $pkgfile.log");
+ }
+ else {
+ @retval = system("$makesisExeLocation -v -c $pkgfile.pkg $pkgfile-tmp.sis > $pkgfile.log");
+ }
+
+ $logMsg = sprintf "Expected code:%5d result Code:%5d\n", $expectedResult, $?;
+ WriteLog( $logMsg);
+
+ $NumberOfTests++;
+
+ if( $? == $expectedResult ) {
+ if(CheckLog($pkgfile, $expectedLog)) {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else {
+ $NumberOfFailed++;
+ WriteLog("Failed : Unexpected Error Log\n\n");
+ }
+ }
+ else {
+ $NumberOfFailed++;
+ WriteLog("Failed : Unexpected Error Code\n\n");
+ }
+
+ unlink("$pkgfile-tmp.sis");
+ unlink("$pkgfile.log");
+ unlink("$pkgfile.pkg");
+
+}
+
+#
+# PREQ2344
+# Run MAKESIS with prepared pkg file,expected result and expected log ,it verify logs generated and expected lags
+#
+sub MakeSISFilePREQ2344 {
+
+ my ($pkgfile) = @_[0];
+ my ($expectedResult) = @_[1];
+ my ($expectedLog) = @_[2];
+ my ($pkgOption) = @_[3];
+ $pkgfile =~ s/\.pkg//;
+
+ if($pkgfile ne "testinterpretflag") {
+ @retval = system("$makesisExeLocation -v $pkgOption $pkgfile.pkg $pkgfile-tmp.sis > $pkgfile.log");
+ }
+ else {
+ @retval = system("$makesisExeLocation -v -c $pkgOption $pkgfile.pkg $pkgfile-tmp.sis > $pkgfile.log");
+ }
+
+ $logMsg = sprintf "Expected code:%5d result Code:%5d\n", $expectedResult, $?;
+ WriteLog( $logMsg);
+ $NumberOfTests++;
+
+ if( $? == $expectedResult ) {
+ if(CheckLog($pkgfile, $expectedLog)) {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else {
+ $NumberOfFailed++;
+ WriteLog("Failed : Unexpected Error Log\n\n");
+ }
+ }
+ else {
+ $NumberOfFailed++;
+ WriteLog("Failed : Unexpected Error Code\n\n");
+ }
+
+ unlink("$pkgfile-tmp.sis");
+ unlink("$pkgfile.log");
+ unlink("$pkgfile.pkg");
+}
+
+#
+# Additional test to check that stub files don't change every time
+# they are built.
+#
+sub TestSISStubFile {
+
+ $teststubpkg = "teststub.pkg";
+ $teststubsis = "teststub.sis";
+ $comparisonsis = "comparison.sis";
+ $teststublog = "teststub.log";
+
+ WriteLog("Test invariant stub file\n");
+
+ # Generate test PKG file contents
+ $PkgFile = sprintf( $PkgFileTempl, "-1,-1,-1");
+ # Create PKG file
+ CreateFile($teststubpkg, $PkgFile);
+
+ # Create a stub sis file
+ my $result = system("$makesisExeLocation -s $teststubpkg $teststubsis > $teststublog");
+
+ # Wait at least a second and generate it again
+ sleep 2;
+ rename($teststubsis, $comparisonsis) or
+ warn "Couldn't rename $teststubsis to $comparisonsis: $!\n";
+
+ my $result2 = system("$makesisExeLocation -s $teststubpkg $teststubsis > $teststublog");
+
+ # Check that the files are the same and log the result
+ use File::Compare;
+ $NumberOfTests++;
+ if (compare($teststubsis, $comparisonsis) == 0
+ && $result == 0
+ && $result2 == 0)
+ {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else
+ {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ unlink $teststublog;
+ unlink $teststubpkg;
+ unlink $teststubsis ;
+ unlink $comparisonsis;
+}
+
+#
+# New test code for DEF083525 - makesis -vs does not create a stub sis file
+# This is based on TestSISStubFile, it builds the stub file with -s and -vs options
+# and checks the resulting files are the same. The defects was that the "s" option
+# was ignored so a stub file was not built.
+#
+sub TestDEF083525 {
+
+ $teststubpkg = "teststub.pkg";
+ $teststubsis = "teststub.sis";
+ $comparisonsis = "comparison.sis";
+ $teststublog = "teststub.log";
+
+ WriteLog("Test for DEF083525 - makesis -vs does not create a stub sis file\n");
+
+ # Generate test PKG file contents
+ $PkgFile = sprintf( $PkgFileTempl, "-1,-1,-1");
+ # Create PKG file
+ CreateFile($teststubpkg, $PkgFile);
+
+ # Create a stub sis file
+ my $result = system("$makesisExeLocation -s $teststubpkg $teststubsis > $teststublog");
+
+ # Wait at least a second and generate it again this time using the -vs options
+ # This defect was that the -vs options was ignored
+ sleep 2;
+ rename $teststubsis, $comparisonsis;
+ my $result2 = system("$makesisExeLocation -vs $teststubpkg $teststubsis > $teststublog");
+
+ # Check that the files are the same and log the result
+ use File::Compare;
+ $NumberOfTests++;
+ if (compare($teststubsis, $comparisonsis) == 0
+ && $result == 0
+ && $result2 == 0)
+ {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else
+ {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ unlink $teststublog;
+ unlink $teststubpkg;
+ unlink $teststubsis ;
+ unlink $comparisonsis;
+}
+
+#
+# New test code for PDEF081989 - makesis parameter -d does not work any more.
+# This creates a testembedded.sis file embedding testembedding.sis. This test checks the
+# working of -d parameter where the search directory containing the embedding sis file is
+# specified with -d option.
+#
+
+sub TestPDEF081989 {
+
+ $testembeddingpkg = "testembedding.pkg";
+ $testembeddingsis = "testembedding.sis";
+ $testembeddedpkg = "testembedded.pkg";
+ $testembeddedsis = "testembedded.sis";
+ $sisFileToEmbed = "/epoc32/winscw/c/";
+ $outputFile = $sisFileToEmbed.$testembeddingsis;
+ $testEmbedLog = "testembedded.log";
+
+ WriteLog("Test for PDEF081989 - Test for successful creation of a sis file with -d option.\n");
+
+ # Generate test PKG file contents for embedding pkg file.
+ $PkgFile = sprintf( $PkgFileTempl, "-1,-1,-1");
+ # Create PKG file
+ CreateFile($testembeddingpkg, $PkgFile);
+
+ # Generate test PKG file contents for embedded pkg file.
+ $PkgFile = sprintf( $embedContents, "-1,-1,-1");
+ # Create PKG file
+ CreateFile($testembeddedpkg , $PkgFile);
+
+
+ # Create an embedding sis file
+ my $result = system("$makesisExeLocation $testembeddingpkg $outputFile > $testEmbedLog");
+
+ # Create an embedded sis file.Here the sis file embedded is situated elsewhere(in "\\epoc32\\winscw\\c\\").
+ # Makesis -d option is used to specify the directory to search for sis file embedded.
+ my $result1 = system("$makesisExeLocation -d$sisFileToEmbed $testembeddedpkg $testembeddedsis > $testEmbedLog");
+
+ $NumberOfTests++;
+ if ($result == 0 && $result1 == 0)
+ {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else
+ {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ unlink $testembeddingpkg;
+ unlink $outputFile;
+ unlink $testembeddedpkg;
+ unlink $testembeddedsis;
+ unlink $testEmbedLog;
+
+}
+
+#
+# Test code for DEF104895 - makesis with -d option
+# This creates a testembedded.sis file embedding testembedding.sis. This test checks the
+# working of -d parameter where the search directory(bacward slashes) containing the embedding sis file is
+# specified with -d option.
+#
+
+sub TestDEF104895 {
+
+ $testembeddingpkg = "testembedding.pkg";
+ $testembeddingsis = "testembedding.sis";
+ $testembeddedpkg = "testembedded.pkg";
+ $testembeddedsis = "testembedded.sis";
+ $sisFileToEmbed = "\\epoc32\\winscw\\c\\";
+ $outputFile = $sisFileToEmbed.$testembeddingsis;
+ $testEmbedLog = "testembedded.log";
+
+ WriteLog("Test for DEF104895 - Test for successful creation of a sis file with -d option.\n");
+
+ # Generate test PKG file contents for embedding pkg file.
+ $PkgFile = sprintf( $PkgFileTempl, "-1,-1,-1");
+ # Create PKG file
+ CreateFile($testembeddingpkg, $PkgFile);
+
+ # Generate test PKG file contents for embedded pkg file.
+ $PkgFile = sprintf( $embedContents, "-1,-1,-1");
+ # Create PKG file
+ CreateFile($testembeddedpkg , $PkgFile);
+
+
+ # Create an embedding sis file
+ my $result = system("$makesisExeLocation $testembeddingpkg $outputFile > $testEmbedLog");
+
+ # Create an embedded sis file.Here the sis file embedded is situated elsewhere(in "\\epoc32\\winscw\\c\\").
+ # Makesis -d option is used to specify the directory to search for sis file embedded.
+ my $result1 = system("$makesisExeLocation -d$sisFileToEmbed $testembeddedpkg $testembeddedsis > $testEmbedLog");
+
+ $NumberOfTests++;
+ if ($result == 0 && $result1 == 0)
+ {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else
+ {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ unlink $testembeddingpkg;
+ unlink $outputFile;
+ unlink $testembeddedpkg;
+ unlink $testembeddedsis;
+ unlink $testEmbedLog;
+
+}
+
+#
+# New test code for DEF107033 - makesis parameter -d does not work with language dependent files
+#
+#
+
+sub TestDEF107033() {
+
+ $testlanguagepkg = "testlanguage.pkg";
+ $testlanguagesis = "testlanguagesis.sis";
+ $testlanguagelog = "testlanguage.log";
+
+ WriteLog("Test makesis parameter -d does not work with language dependent files\n");
+
+ # Generate test PKG file contents
+ $PkgFile = sprintf( $PkgLanguageFileTemp);
+ # Create PKG file
+ CreateFile($testlanguagepkg, $PkgFile);
+
+ # Create a stub sis file
+ my $result = system("$makesisExeLocation -d/epoc32/winscw/c/tswi/ $testlanguagepkg $testlanguagesis > $testlanguagelog");
+
+
+ $NumberOfTests++;
+
+ if ($result == 0) {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ unlink $testlanguagepkg;
+ unlink $testlanguagesis;
+ unlink $testlanguagelog ;
+
+}
+
+#
+# Test code for DEF104895 - makesis with -d option
+# This creates a testembedded.sis file embedding testembedding.sis. This test checks the
+# working of -d parameter where the search directory(bacward slashes) containing the embedding sis file is
+# specified with -d option.
+#
+
+sub TestLDEF104895 {
+
+ $testembeddingpkg = "testembedding.pkg";
+ $testembeddingsis = "testembedding.sis";
+ $testembeddedpkg = "testembedded.pkg";
+ $testembeddedsis = "testembedded.sis";
+ $sisFileToEmbed = "\\\\epoc32\\\\winscw\\\\c\\\\";
+ $outputFile = $sisFileToEmbed.$testembeddingsis;
+ $testEmbedLog = "testembedded.log";
+
+ WriteLog("Test for DEF104895 - Test for successful creation of a sis file with -d option.\n");
+
+ # Generate test PKG file contents for embedding pkg file.
+ $PkgFile = sprintf( $PkgFileTempl, "-1,-1,-1");
+ # Create PKG file
+ CreateFile($testembeddingpkg, $PkgFile);
+
+ # Generate test PKG file contents for embedded pkg file.
+ $PkgFile = sprintf( $embedContents, "-1,-1,-1");
+ # Create PKG file
+ CreateFile($testembeddedpkg , $PkgFile);
+
+
+ # Create an embedding sis file
+ my $result = system("$makesisExeLocation $testembeddingpkg $outputFile > $testEmbedLog");
+
+ # Create an embedded sis file.Here the sis file embedded is situated elsewhere(in "\\epoc32\\winscw\\c\\").
+ # Makesis -d option is used to specify the directory to search for sis file embedded.
+ my $result1 = system("$makesisExeLocation -d$sisFileToEmbed $testembeddedpkg $testembeddedsis > $testEmbedLog");
+
+ $NumberOfTests++;
+ if ($result == 0 && $result1 == 0)
+ {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else
+ {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ unlink $testembeddingpkg;
+ unlink $outputFile;
+ unlink $testembeddedpkg;
+ unlink $testembeddedsis;
+ unlink $testEmbedLog;
+
+}
+
+
+#
+# New test code for DEF090878 - unexpected error by makesis when processing pkg file saved in UTF8 format
+# This test uses existing utf8.pkg which contains UTF-8 encoded characters and in turn refers to utf8.txt
+#
+sub TestDEF090878 {
+
+ my $path = "/epoc32/winscw/c/tswi";
+ my $pkgfile = "$path/utf8";
+ my $expectedResult = 0;
+
+ WriteLog("Test for DEF090878 - unexpected error by makesis when processing pkg file saved in UTF8 format\n");
+ WriteLog("UTF-8 encoded file: $pkgfile.pkg\n");
+
+ # Do MAKESIS test
+ @retval = system("$makesisExeLocation $pkgfile.pkg $pkgfile-tmp.sis > $pkgfile.log");
+
+ $logMsg = sprintf "Expected code:%5d result Code:%5d\n", $expectedResult, $?;
+ WriteLog( $logMsg);
+
+ $NumberOfTests++;
+
+ if( $? == $expectedResult ) {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ unlink("$pkgfile-tmp.sis");
+ unlink("$pkgfile.sis");
+ unlink("$pkgfile.log");
+}
+
+#
+# Test code for DEF112831 - makesis crashes on .pkg containing non-existing embedded sis
+#
+
+sub TestDEF112831() {
+
+ my $expectedResult = 256;
+ $testmissingembeddedpkg = "missingembedded.pkg";
+ $testmissingembeddedsis = "missingembedded.sis";
+ $testmissingembeddedlog = "missingembedded.log";
+
+ WriteLog("Test for DEF112831 - makesis crashes on .pkg containing non-existing embedded sis\n");
+
+ # Generate test PKG file contents
+ $PkgFile = sprintf( $missingEmbed);
+ # Create PKG file
+ CreateFile($testmissingembeddedpkg, $PkgFile);
+
+ # Create a stub sis file
+ my $result = system("$makesisExeLocation -d/epoc32/winscw/c/tswi/ $testmissingembeddedpkg $testmissingembeddedsis > $testmissingembeddedlog");
+
+ $logMsg = sprintf "Expected code:%5d result Code:%5d\n", $expectedResult, $?;
+ WriteLog( $logMsg);
+
+ $NumberOfTests++;
+
+ if ($result == 256) {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ unlink $testmissingembeddedpkg;
+ unlink $testmissingembeddedsis;
+ unlink $testmissingembeddedlog ;
+
+}
+
+# Windows Test
+# Test code for DEF091942
+# Test case generates a SIS from a Japanese named pkg file. Checks to see if the SIS fle generated has the same name.
+# NOTE: Does not validate the console output.
+
+sub TestDEF091942 {
+
+ my $path = "\\epoc32\\winscw\\c\\tswi";
+
+ $NumberOfTests++;
+ WriteLog("Test for DEF091942 - makesis can not handle package files names written with japanese symbols\n");
+
+ # Generate Japanese pkg
+ system("WScript.exe //B //Nologo $path\\displayjpn_1.vbs");
+
+ # Check to see if the sis file has been generated
+ system("WScript.exe //B //Nologo $path\\displayjpn_2.vbs");
+
+ if ( -f "$path\\passed.txt") {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ } else {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ # Tidy up
+ system("WScript.exe //B //Nologo $path\\displayjpn_3.vbs");
+}
+
+# Linux Test
+# Test code for DEF091942
+# Test case generates a SIS from a Japanese named pkg file. Checks to see if the SIS fle generated has the same name.
+# NOTE: Does not validate the console output.
+
+sub TestLDEF091942{
+
+ $pkgfile = "ゎわこんァア龐龑.pkg";
+ $sisfile = "ゎわこんァア龐龑.sis";
+ $logfile = "ゎわこんァア龐龑.log";
+
+ $NumberOfTests++;
+
+ my $file = "/epoc32/winscw/c/tswi/passed.txt";
+
+ WriteLog("Test for DEF091942 - makesis can not handle package files names written with japanese symbols\n");
+
+ # Generate test PKG file contents for japanese pkg file.
+ $PkgFile = sprintf( $JAPPkgFileTempl);
+ # Create PKG file
+ CreateFile($pkgfile, $PkgFile);
+
+ # Do MAKESIS test
+ @retval = system("$makesisExeLocation -v $pkgfile > logfile");
+
+ $logMsg = sprintf "Expected code:%5d result Code:%5d\n", $expectedResult, $?;
+ WriteLog( $logMsg);
+
+ if(-f $sisfile){
+ CreateFile($file,$TempData);
+ }
+
+ if( -f $file ) {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ unlink("$pkgfile.sis");
+ unlink("$pkgfile.log");
+ unlink("$pkgfile.pkg");
+}
+
+
+
+#
+# New test code for DEF091780 - Makesis have problems parsing IF-ENDIF block
+# test files are generated according to defect description, except that ALL files are located in current folder
+#
+sub TestDEF091780 {
+
+ my $ifendif = "ifendif.pkg";
+ my $expectedResult = 0;
+
+ WriteLog("Test for DEF091780 - Makesis have problems parsing IF-ENDIF block\n");
+
+ # Create PKG file
+ CreateFile($ifendif , $ifendifContent);
+ $ifendif =~ s/\.pkg//;
+
+ # Create options-related files
+ CreateFile('osver1J.txt', "1J");
+ CreateFile('osver2J.txt', "2J");
+ CreateFile('osver1F.txt', "1F");
+ CreateFile('osver2F.txt', "2F");
+
+ # Do MAKESIS test
+ @retval = system("$makesisExeLocation $ifendif.pkg $ifendif-tmp.sis > $ifendif.log");
+
+ $logMsg = sprintf "Expected code:%5d result Code:%5d\n", $expectedResult, $?;
+ WriteLog( $logMsg);
+
+ $NumberOfTests++;
+
+ if( $? == $expectedResult ) {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ # tidy up
+ unlink("$ifendif.pkg");
+ unlink("$ifendif-tmp.sis");
+ unlink("$ifendif.sis");
+ unlink("$ifendif.log");
+ unlink("osver1J.txt");
+ unlink("osver2J.txt");
+ unlink("osver1F.txt");
+ unlink("osver2F.txt");
+}
+
+#
+# Test code for SIS files with comma at the end of the file - DEF108815
+#
+#
+sub TestEndFileComma {
+
+ my $pkgName = "endFileComma.pkg";
+ my $logName = "endFileComma.log";
+ my $sisName = "endFileComma.sis";
+ my $expectedResult = 256;
+
+ WriteLog("Test for DEF108815 - makesis crashes if a trailing comma is present on an install-file \n");
+
+ # Create PKG file
+ CreateFile($pkgName, $endFileCommaContent);
+ $ifendif =~ s/\.pkg//;
+
+ # Do MAKESIS test
+ @retval = system("$makesisExeLocation $pkgName $sisName > $logName");
+
+ $logMsg = sprintf "Expected code:%5d result Code:%5d\n", $expectedResult, $?;
+ WriteLog( $logMsg);
+
+ $NumberOfTests++;
+
+ if( $? == $expectedResult ) {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ # tidy up
+ #unlink("$pkgName");
+ unlink("$sisName");
+ unlink("$logName");
+}
+
+#
+# Test code for package file containing very long destination folder name - DEF115795
+#
+#
+sub TestLongFolderName {
+
+ my $pkgName = "longfolder.pkg";
+ my $logName = "longfolder.log";
+ my $sisName = "longfolder.sis";
+ my $expectedResult = 256;
+
+ WriteLog("Test for DEF115795 - SWI completes the installation despite the files not being installed \n");
+
+ # Create PKG file
+ CreateFile($pkgName, $longfolder);
+ $ifendif =~ s/\.pkg//;
+
+ # Do MAKESIS test
+ @retval = system("$makesisExeLocation $pkgName $sisName > $logName");
+
+ $logMsg = sprintf "Expected code:%5d result Code:%5d\n", $expectedResult, $?;
+ WriteLog( $logMsg);
+
+ $NumberOfTests++;
+
+ if( $? == $expectedResult ) {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ # tidy up
+ unlink("$pkgName");
+ unlink("$sisName");
+ unlink("$logName");
+}
+
+#
+# Test code for invalid version number in pkg file - DEF112718
+#
+#
+sub TestInvalidVersion1 {
+
+ my $pkgName = "invalidVersion.pkg";
+ my $LogFile = "invalidVersion.log";
+ my $sisName = "invalidVersion.sis";
+ my $ExpectedLogFile = "InvalidVersionExpected.log";
+
+ WriteLog("Test for DEF112718 - Invalid version number in pkg file \n");
+
+ # Create PKG file
+ CreateFile($pkgName, $invalidVersion1);
+
+ # Create expected log file
+ CreateFile($ExpectedLogFile ,$DEF112718ExpectedOutput);
+
+ # Create a sis file
+ my $result = system("$makesisExeLocation $pkgName $sisName > $LogFile");
+
+ use File::Compare;
+ my $result1;
+
+ if(compare($LogFile ,$ExpectedLogFile)== 0)
+ {
+ $result1 = 0;
+ }
+ else
+ {
+ $result1 = 1;
+ }
+ $NumberOfTests++;
+
+ if ($result == 0 && $result1 == 0)
+ {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else
+ {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+
+ # tidy up
+ unlink("$pkgName");
+ unlink("$sisName");
+ unlink("$logName");
+ unlink ("$LogFile");
+}
+
+#
+# Test code for invalid version number in pkg file - DEF112718
+#
+#
+
+sub TestInvalidVersion2 {
+
+ my $pkgName = "invalidVersion.pkg";
+ my $logName = "invalidVersion.log";
+ my $sisName = "invalidVersion.sis";
+ my $expectedResult = 256;
+
+ WriteLog("Test for DEF112718 - Invalid version number in pkg file with negative values \n");
+
+ # Create PKG file
+ CreateFile($pkgName, $invalidVersion2);
+
+
+ # Do MAKESIS test
+ @retval = system("$makesisExeLocation $pkgName $sisName > $logName");
+
+ $logMsg = sprintf "Expected code:%5d result Code:%5d\n", $expectedResult, $?;
+ WriteLog( $logMsg);
+
+ $NumberOfTests++;
+
+ if( $? == $expectedResult ) {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ # tidy up
+ unlink("$pkgName");
+ unlink("$sisName");
+ unlink("$logName");
+}
+
+
+#
+# Test code for Preinstalled pkg files without having sourcefiles - DEF113569
+#
+#
+sub TestPreInstalledWithoutSourceFiles {
+
+ my $pkgName = "preinstalledwithoutsourcefile.pkg";
+ my $logName = "preinstalledwithoutsourcefile.log";
+ my $sisName = "preinstalledwithoutsourcefile.sis";
+ my $ExpectedLogFile = "preinstalledwithoutsourcefileExpected.log";
+
+ WriteLog("Test for DEF113569 - Preinstalled pkg files without having sourcefiles \n");
+
+ # Create PKG file
+ CreateFile($pkgName, $PreinstalledPkgWithoutSourcefiles);
+
+ # Create expected log file
+ CreateFile($ExpectedLogFile ,$DEF113569ExpectedOutput);
+
+ # Do MAKESIS test
+ @retval = system("$makesisExeLocation $pkgName $sisName > $logName");
+
+ use File::Compare;
+ my $result1;
+
+ if(compare($logName ,$ExpectedLogFile)== 0)
+ {
+ $result1 = 0;
+ }
+ else
+ {
+ $result1 = 1;
+ }
+
+ $NumberOfTests++;
+
+
+ if ($result == 0 && $result1 == 0)
+ {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else
+ {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ # tidy up
+ unlink("$pkgName");
+ unlink("$sisName");
+ unlink("$logName");
+ unlink ("$ExpectedLogFile");
+}
+
+
+# New test code for DEF091860 - Quotes missing in reversed package produced by dumpsis for IF EXIST statement.
+# This creates a DEF091860.sis file . This test checks whether the pkg file generated by dumpsis when reprocessed
+# by makesis generates a sis file successfully.
+#
+sub TestDEF091860() {
+
+ $DEF091860pkg = "DEF091860.pkg";
+ $DEF091860sis = "DEF091860.sis";
+ $DumpsisGenPkgPath = "\/DEF091860";
+ $DEF091860Log = "DEF091860.log";
+
+
+ WriteLog("Test for DEF091860 - Test for successful creation of a sis file when pkg file generated from dumpsis is used.\n");
+
+ # Generate test PKG file contents for embedding pkg file.
+ $PkgFile = sprintf( $DEF091860PkgContents, "-1,-1,-1");
+ # Create PKG file
+ CreateFile($DEF091860pkg, $PkgFile);
+
+ # Create DEF091860.sis file
+ my $result = system("$makesisExeLocation $DEF091860pkg $DEF091860sis > $DEF091860Log");
+
+ WriteLog("result: $result\n");
+
+ # Execute DumpSIS on the created DEF091860.sis.
+ my $result1 = system("/epoc32/tools/DUMPSIS -x $DEF091860sis > $DEF091860Log");
+
+ WriteLog("result1: $result1[0]\n");
+
+ use Cwd;
+ $dir = cwd;
+ chdir $dir.$DumpsisGenPkgPath;
+
+ #Regenerate DEF091860.sis from the dumpsis generated pkg file.
+ $result2 = system("$makesisExeLocation $DEF091860pkg $DEF091860sis > $DEF091860Log");
+ chdir $dir;
+
+ WriteLog("result2: $result2\n");
+
+ $NumberOfTests++;
+ if ($result == 0 && $result1 == 0 && $result2 == 0)
+ {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else
+ {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ unlink $DEF091860pkg;
+ unlink $DEF091860sis;
+ unlink $DEF091860Log;
+ use File::Path;
+ rmtree "$dir$DumpsisGenPkgPath";
+}
+
+#
+# New test code for DEF090912 makesis shows error: file I/O fault. for PC folder with unicode (katakana) UCS2
+# NB: japanese source file is located in current folder instead of on folder tree for simplicity
+#
+sub TestDEF090912 {
+
+ my $path = "\\epoc32\\winscw\\c\\tswi";
+ my $ucs2 = "$path\\ucs2jpn";
+ my $expectedResult = 0;
+
+ WriteLog("Test for DEF090912: makesis shows error \"file I/O fault\" for PC folder with unicode (katakana) UCS2\n");
+
+ # tricky thing to create file with Japanese name on any locale
+ # use //B to launch script engine in batch mode
+ system("WScript.exe //B //Nologo $path\\ucs2jpn.vbs");
+
+ # Do MAKESIS test
+ @retval = system("$makesisExeLocation $ucs2.pkg $ucs2-tmp.sis > $ucs2.log");
+
+ $logMsg = sprintf "Expected code:%5d result Code:%5d\n", $expectedResult, $?;
+ WriteLog( $logMsg);
+
+ $NumberOfTests++;
+
+ if( $? == $expectedResult ) {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ # tidy up
+ unlink("$ucs2-tmp.sis");
+ unlink("$ucs2.log");
+ system("WScript.exe //B //Nologo $path\\rmucs2jpn.vbs");
+}
+
+
+# Linux Test
+# New test code for DEF090912 makesis shows error: file I/O fault. for PC folder with unicode (katakana) UCS2
+# NB: japanese source file is located in current folder instead of on folder tree for simplicity
+#
+sub TestLDEF090912 {
+
+ my $path = "/epoc32/winscw/c/tswi";
+ my $ucs2 = "$path/ナソト.txt";
+ my $pkgfile = "$path/ucs2jpn";
+ my $expectedResult = 0;
+
+ WriteLog("Test for DEF090912: makesis shows error \"file I/O fault\" for PC folder with unicode (katakana) UCS2\n");
+
+
+ # Create PKG file
+
+ CreateFile($ucs2, $TempData);
+
+ # Do MAKESIS test
+ @retval = system("$makesisExeLocation -v $pkgfile.pkg > $pkgfile.log");
+
+ $logMsg = sprintf "Expected code:%5d result Code:%5d\n", $expectedResult, $?;
+ WriteLog( $logMsg);
+
+ $NumberOfTests++;
+
+ if( $? == $expectedResult ) {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ # tidy up
+ unlink("$pkgfile.log");
+ unlink("$pkgfile.sis");
+}
+
+
+
+
+#
+# New test code for DEF093400: Temporary files are left undeleted after MakeSIS/SignSIS call
+# NB: japanese source file is located in current folder instead of on folder tree for simplicity
+#
+
+sub TestDEF093400
+{
+ WriteLog("Test for DEF093400: Temporary files are left undeleted after MakeSIS/SignSIS call\n");
+
+ my $pkg = "temp.pkg";
+ my $expectedResult = 0;
+
+ # Create PKG file
+ chmod S_IWUSR | S_IWGRP | S_IWOTH, '$pkg';
+ my $temp = sprintf $PkgFileTempl, "-1,-1,-1";
+ CreateFile($pkg, $temp);
+ $pkg =~ s/\.pkg//;
+
+ # Create options-related files
+ chmod S_IWUSR | S_IWGRP | S_IWOTH, '$pkg.txt';
+ CreateFile("$pkg.txt", "temp file");
+ chmod S_IRUSR | S_IRGRP | S_IROTH, '$pkg.txt';
+
+ my $TmpCountBefore = GetTmpFilesCount();
+
+ # Do MAKESIS test
+ @retval = system("$makesisExeLocation $pkg.pkg $pkg-tmp.sis > $pkg.log");
+
+ my $TmpCountAfter = GetTmpFilesCount();
+
+ $logMsg = sprintf "Expected code:%5d result Code:%5d\n", $expectedResult, $?;
+ WriteLog( $logMsg);
+ $logMsg = sprintf "Temp Files detected - Before:%5d After:%5d\n", $TmpCountBefore, $TmpCountAfter;
+ WriteLog( $logMsg);
+
+ $NumberOfTests++;
+
+ if( $? == $expectedResult && $TmpCountBefore == $TmpCountAfter ) {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ # tidy up
+ unlink("$pkg.pkg");
+ unlink("$pkg-tmp.sis");
+ unlink("$pkg.txt");
+ unlink("$pkg.log");
+}
+
+
+#
+# New test code for DEF093156 - MAKEKEYS does not process correctly non European symbols in cmd line
+# This test checks whether the certificate and key files which have names with japanese symbols are created successfully .
+#
+sub TestDEF093156 {
+
+ my $path = "\\epoc32\\winscw\\c\\tswi";
+ $DEF093156Log = "DEF093156.log";
+ $ResFile1="ex.txt";
+ $ResFile2="ResultMakeKeys.txt";
+
+ WriteLog("Test for DEF093156 - Makekeys test for successful creation of a certificate and key file with japanese symbols.\n");
+
+ # create a key file and a certificate file with japanese symbols
+ system("WScript.exe //B //Nologo $path\\testmakekeys.vbs > $DEF093156Log");
+
+ $NumberOfTests++;
+ if ( !-f $ResFile1 )
+ {
+ $NumberOfFailed++;
+ WriteLog("Failed In Step 1\n\n");
+ unlink $DEF093156Log;
+ exit;
+ }
+
+ #Make sure that the DN in the created certificate with japanese symbols is encoded properly
+ system("WScript.exe //B //Nologo $path\\testmakekeys2.vbs $path 1 > $DEF093156Log");
+
+ if ( -f $ResFile2 )
+ {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else
+ {
+ $NumberOfFailed++;
+ WriteLog("Failed In Step 2\n\n");
+ }
+
+ unlink $DEF093156Log;
+ unlink $ResFile1;
+ unlink $ResFile2;
+}
+
+#
+# New test code for INC092755: Makesis includes the same file to the generated SIS file if the pkg file has IF-ELSE condition block where only the destination path changes
+#
+sub TestINC092755 {
+
+ WriteLog("Test for INC092755: Makesis includes the same file for IF-ELSE where only the dest path changes\n");
+
+ my $path = "\\epoc32\\winscw\\c\\tswi";
+ my $INC092755 = "INC092755";
+
+ # Call DumpSIS to compare SIS file against expected result and number of files extracted
+ WriteLog("Calling DumpSIS...\n");
+ @retval = system("/epoc32/tools/DUMPSIS -x $path\\$INC092755.sis > $INC092755.log");
+
+ use Cwd;
+ my $dir = cwd."/$INC092755";
+ opendir ( DIR, "$dir" ) or die ( "Can't open dir: $dir" ); #!
+ my @List = readdir DIR;
+ closedir DIR;
+
+ my @files = grep( /^file[0-9]*/ , @List );
+ my $fileCount = @files;
+ print "Extracted: $fileCount file(s) Expected: 1 file(s)\n";
+
+ $NumberOfTests++;
+ if ( $fileCount == 1 )
+ {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else
+ {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ unlink("$INC092755.log");
+ rmdir("$INC092755");
+ unlink("$INC092755.sis");
+}
+
+#
+# New test code for CR904
+# This test checks for the successful creation of sis file when pkg file contains the parameter $ (which represents
+# system drive) in the destination file.
+#
+
+
+sub TestsysDriveparameter {
+
+ $pkgFilewithsysDriveparameter = "testsysDrive.pkg";
+ $sisFile = "testsysDrive.sis";
+ $LogFile = "testsysDrive.log";
+
+
+ WriteLog("Test for successful creation of a sis file with $ parameter specified in pkg file to represent system drive.\n");
+
+ # Generate test PKG file contents for embedding pkg file.
+ $PkgFile = sprintf( $PkgFileTemp2, "-1,-1,-1");
+
+ # Create PKG file
+ CreateFile($pkgFilewithsysDriveparameter, $PkgFile);
+
+
+ # Create an embedding sis file
+ my $result = system("$makesisExeLocation $pkgFilewithsysDriveparameter $sisFile > $LogFile");
+
+
+ $NumberOfTests++;
+ if ($result == 0 )
+ {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else
+ {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ unlink $pkgFilewithsysDriveparameter;
+ unlink $sisFile;
+ unlink $LogFile
+
+}
+
+
+#
+# New test code for CR1027 - SA ROM Upgrade
+# This test checks for the successful creation of sis file when PKG file contains the newly added ( as part of CR1027 )
+# ROM upgrade capability install flag RU with one of the right install types SA ( only SA, PU & SP are valid with RU).
+#
+
+sub TestSisRUWithSA {
+
+ $pkgFilewithRUAndSA = "testsysRUWithSA.pkg";
+ $sisFile = "testsysRUWithSA.sis";
+ $LogFile = "testsysRUWithSA.log";
+
+
+ WriteLog("CR1027 - Test for successful creation of a sis file with the ROM Upgrade install flag RU with the right install type SA.\n");
+
+ # Generate test PKG file contents for embedding pkg file.
+ $PkgFile = sprintf( $PkgFileRUWithSA, "-1,-1,-1");
+
+ # Create PKG file
+ CreateFile($pkgFilewithRUAndSA, $PkgFile);
+
+
+ # Create an embedding sis file
+ my $result = system("$makesisExeLocation $pkgFilewithRUAndSA $sisFile > $LogFile");
+
+ $NumberOfTests++;
+ if ($result == 0 )
+ {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else
+ {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ unlink $pkgFilewithRUAndSA;
+ unlink $sisFile;
+ unlink $LogFile
+}
+
+
+
+#
+# New test code for CR1027 - SA ROM Upgrade
+# This test checks for the un-successful creation of sis file when PKG file contains the newly added ( as part of CR1027 )
+# ROM upgrade capability install flag RU with the wrong install type other than SA, PU & SP (like PA & PP.).
+#
+
+sub TestSisRUWithNonSA {
+
+ $pkgFilewithRUAndNonSA = "testsysRUWithNonSA.pkg";
+ $sisFile = "testsysRUWithNonSA.sis";
+ $LogFile = "testsysRUWithNonSA.log";
+
+
+ WriteLog("CR1027 - Test for Un-successful creation of a sis file with the ROM Upgrade install flag RU with the wrong install type, anything other than SA.\n");
+
+ # Generate test PKG file contents for embedding pkg file.
+ $PkgFile = sprintf( $PkgFileRUWithNonSA, "-1,-1,-1");
+
+ # Create PKG file
+ CreateFile($pkgFilewithRUAndNonSA, $PkgFile);
+
+
+ # Create an embedding sis file
+ my $result = system("$makesisExeLocation $pkgFilewithRUAndNonSA $sisFile > $LogFile");
+
+
+ $NumberOfTests++;
+ if ($result != 0 )
+ {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else
+ {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ unlink $pkgFilewithRUAndNonSA;
+ unlink $sisFile;
+ unlink $LogFile
+}
+
+#
+# New test code for CR1122 - WildCard Support for ROM Stubs.
+# This test checks for the successful creation of sis file when PKG file contains the wildcard charetors(? and *) in it.
+# These packages can be upgraded (eclipsed) in much wider way as per the wildcard charector's behaviour.
+#
+
+sub TestSISWithWildCards {
+
+ $pkgFilewithWildCards = "testSysWithWildCards.pkg";
+ $sisFile = "testSysWithWildCards.sis";
+ $LogFile = "testSysWithWildCards.log";
+
+
+ WriteLog("CR1122 - Test for successful creation of a sis file for wildcarded ROM stub package file.\n");
+
+ # Generate test PKG file contents for embedding pkg file.
+ $PkgFile = sprintf( $WildCardedpkgFile, "-1,-1,-1");
+
+ # Create PKG file
+ CreateFile($pkgFilewithWildCards, $PkgFile);
+
+
+ # Create an embedding sis file
+ my $result = system("$makesisExeLocation -s $pkgFilewithWildCards $sisFile > $LogFile");
+
+
+ $NumberOfTests++;
+ if ($result == 0 )
+ {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else
+ {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ unlink $pkgFilewithWildCards;
+ unlink $sisFile;
+ unlink $LogFile;
+}
+
+
+#
+# New test code for CR1122 - WildCard Support for ROM Stubs.
+# This test checks for the Un-successful creation of sis file when PKG file contains the wildcard charetors(? and *) and PA install type in it.
+#
+
+sub TestSISWithWildCardsPA {
+
+ $pkgFilewithWildCards = "testSysWithWildCards.pkg";
+ $sisFile = "testSysWithWildCards.sis";
+ $LogFile = "testSysWithWildCards.log";
+
+
+ WriteLog("CR1122 - Test for un-successful creation of a SIS file for wildcarded PA package file.\n");
+
+ # Generate test PKG file contents for embedding pkg file.
+ $PkgFile = sprintf( $WildCardedPApkgFile, "-1,-1,-1");
+
+ # Create PKG file
+ CreateFile($pkgFilewithWildCards, $PkgFile);
+
+
+ # Create an embedding sis file
+ my $result = system("$makesisExeLocation $pkgFilewithWildCards $sisFile > $LogFile");
+
+
+ $NumberOfTests++;
+ if ($result != 0 )
+ {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else
+ {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ unlink $pkgFilewithWildCards;
+ unlink $sisFile;
+ unlink $LogFile;
+}
+
+
+#
+# New test code for CR1122 - WildCard Support for ROM Stubs.
+# This test checks for the Un-successful creation of sis file when PKG file contains the wildcard charetors(? and *) and PP install type in it.
+#
+sub TestSISWithWildCardsPP {
+
+ $pkgFilewithWildCards = "testSysWithWildCards.pkg";
+ $sisFile = "testSysWithWildCards.sis";
+ $LogFile = "testSysWithWildCards.log";
+
+
+ WriteLog("CR1122 - Test for un-successful creation of a SIS file for wildcarded PA package file.\n");
+
+ # Generate test PKG file contents for embedding pkg file.
+ $PkgFile = sprintf( $WildCardedPPpkgFile, "-1,-1,-1");
+
+ # Create PKG file
+ CreateFile($pkgFilewithWildCards, $PkgFile);
+
+
+ # Create an embedding sis file
+ my $result = system("$makesisExeLocation $pkgFilewithWildCards $sisFile > $LogFile");
+
+
+ $NumberOfTests++;
+ if ($result != 0 )
+ {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else
+ {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ unlink $pkgFilewithWildCards;
+ unlink $sisFile;
+ unlink $LogFile;
+}
+
+
+sub TestSingleCharFilename {
+
+ $pkgFileName = "temp.pkg";
+ $sisFile = "t.sis";
+ $LogFile = "singleCharFilename.log";
+
+ WriteLog("Test for successful creation of a sis file with a single char in its filename.\n"); #DEF108728
+
+ # Generate test PKG file contents for embedding pkg file.
+ $PkgFile = sprintf( $PkgFileTemp2, "-1,-1,-1");
+
+ # Create PKG file
+ CreateFile($pkgFileName, $PkgFile);
+
+ # Create an embedding sis file
+ my $result = system("$makesisExeLocation $pkgFileName $sisFile > $LogFile");
+
+
+ $NumberOfTests++;
+ if ($result == 0 )
+ {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else
+ {
+ $NumberOfFailed++;
+ WriteLog("Failed with result $result\n\n");
+ }
+
+ unlink $pkgFileName;
+ unlink $sisFile;
+ unlink $LogFile
+}
+
+
+#
+# Test code for DEF111264 - Makesis should warn if wildcards are used in the \sys\bin\ directory in ROM stubs .
+# This test checks verifies that a warning is generated when a ROM Stub file contains an exe with wildcards(* or ?) specified .
+#
+
+sub TestDEF111264 {
+
+ $pkgFile = "ROMStubWildCardWarning.pkg";
+ $sisFile = "ROMStubWildCardWarning.sis";
+ $LogFile = "ROMStubWildCardWarning.log";
+ $ExpectedLogFile = "ROMStubWildCardExpected.log";
+
+ WriteLog("DEF111264 - Makesis should warn if wildcards are used in the \sys\bin\ directory in ROM stubs.\n");
+
+ # Generate test PKG file contents for pkg file.
+ $PkgFile = sprintf( $ExeWithWildCardpkgFile, "-1,-1,-1");
+
+ # Create PKG file
+ CreateFile($pkgFile, $PkgFile);
+
+ # Create expected log file
+ CreateFile($ExpectedLogFile ,$DEF111264ExpectedOutput);
+
+ # Create a sis file
+ my $result = system("/epoc32/tools/makesis -s $pkgFile $sisFile > $LogFile");
+
+ use File::Compare;
+ my $result1;
+
+ if(compare($LogFile ,$ExpectedLogFile)== 0)
+ {
+ $result1 = 0;
+ }
+ else
+ {
+ $result1 = 1;
+ }
+
+ $NumberOfTests++;
+
+ if ($result == 0 && $result1 == 0)
+ {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else
+ {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ unlink $pkgFile;
+ unlink $sisFile;
+ unlink $LogFile;
+ unlink $ExpectedLogFile;
+}
+
+
+#
+# Test code for DEF113349 - Attempting to embed a PP SIS file in an SA SIS file causes makesis to crash.
+# This test checks verifies that a warning is generated when attempted to embed a PP/PA SIS file in an SA SIS.
+#
+
+sub TestDEF113349 {
+
+ $pkgEmbeddedFile = "EmdeddedPA.pkg";
+ $sisEmbeddedFile = "EmbeddedPA.sis";
+ $pkgFile = "EmdeddingPA.pkg";
+ $sisFile = "EmbeddingPA.sis";
+ $LogFile = "DEF113349.log";
+ $ExpectedLogFile = "DEF113349Expected.log";
+
+ WriteLog("DEF113349 - Attempting to embed a PP SIS file in an SA SIS file causes makesis to crash.\n");
+
+ # Generate test PKG file contents for the embedded pkg file.
+ $PkgFile = sprintf( $EmbeddedPApkgFile, "-1,-1,-1");
+
+ # Create PKG file
+ CreateFile($pkgEmbeddedFile, $PkgFile);
+
+ # Create SIS file for the embedded package of type = PA.
+ my $result = system("/epoc32/tools/makesis $pkgEmbeddedFile $sisEmbeddedFile > $LogFile");
+
+ # Generate test PKG file contents for embedding pkg file.
+ $PkgFile = sprintf( $EmbeddingPApkgFile, "-1,-1,-1");
+
+ # Create PKG file
+ CreateFile($pkgFile , $PkgFile);
+
+ # Create SIS file for the embedding package of type = SA.
+ my $result1 = system("/epoc32/tools/makesis $pkgFile $sisFile > $LogFile");
+
+ # Create expected log file
+ CreateFile($ExpectedLogFile ,$DEF113349ExpectedOutput);
+
+
+ use File::Compare;
+ my $result2;
+
+ if(compare($LogFile ,$ExpectedLogFile)== 0)
+ {
+ $result2 = 0;
+ }
+ else
+ {
+ $result2 = 1;
+ }
+
+ $NumberOfTests++;
+
+ if ($result == 0 && $result1 == 256 && $result2 == 0)
+ {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else
+ {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ unlink $pkgEmbeddedFile;
+ unlink $sisEmbeddedFile;
+ unlink $pkgFile;
+ unlink $sisFile;
+ unlink $LogFile;
+ unlink $ExpectedLogFile;
+}
+
+#
+# Test code for DEF113116 : It is not possible to abort an installation without causing an error.
+# This test checks for the successful creation of sis file when pkg file contains a new display text option
+# ForceAbort (FA).
+#
+
+
+sub TestDEF113116 {
+
+ $pkgFile = "textoption_FA.pkg";
+ $sisFile = "textoption_FA.sis";
+ $LogFile = "textoption_FA.log";
+ $DumpsisGenPkgPath = "\/textoption_FA";
+
+ WriteLog("DEF113116 : Test MakeSIS and DumpSIS support for ForceAbort (FA) text option.\n");
+
+ # Generate test PKG file contents for embedding pkg file.
+ $PkgFile = sprintf( $PkgFileWithFAOption, "-1,-1,-1");
+
+ # Create PKG file
+ CreateFile($pkgFile , $PkgFile);
+
+
+ # Create sis file using MakeSIS
+ my $result = system("$makesisExeLocation $pkgFile $sisFile > $LogFile");
+
+ # Recreate pkg file using DumpSIS.
+ my $result1 = system("$dumpsisExeLocation $sisFile > $LogFile");
+
+ $NumberOfTests++;
+ if ($result == 0 && $result1 == 0)
+ {
+ $NumberOfPassed++;
+ WriteLog("Passed\n\n");
+ }
+ else
+ {
+ $NumberOfFailed++;
+ WriteLog("Failed\n\n");
+ }
+
+ use cwd;
+ $dir = cwd;
+
+ unlink $pkgFile;
+ unlink $sisFile;
+ unlink $LogFile;
+
+ use File::Path;
+ rmtree "$dir$DumpsisGenPkgPath";
+
+}
+
+
+#
+# Main
+#
+# Create environment and control test flow to testing MAKESIS.EXE
+# (generate text.txt, pkg file, test makesis and check the result)
+#
+
+unlink($logFile);
+WriteLog("makesis test.\n\n");
+
+#
+# Generate test.txt this is the only one element of every PKGs.
+#
+$contents = "This is a test text.";
+CreateFile('TEST.txt', $contents);
+
+#
+# Generate HelloApp.exe this is the only one element of every PKGs.
+#
+$contents = "This is a test exe.";
+CreateFile('HelloApp.exe', $contents);
+
+#
+# Counters for results
+#
+$NumberOfTests = 0;
+$NUmberOfPassed = 0;
+$NumberOfFailed = 0;
+
+#
+# Array of contents of test pkgs and expected results
+#
+# file name, range, expected, expected log, Title
+# (from) (to) result message
+# -----------------------------------------------------------------------------------------------------------------------------------------
+@TestItems = ( ["test01.pkg", "-1,-1,-1", 0, "Generating SIS installation file...", "Range not specified 1."],
+ ["test02.pkg", "-1,-1,-1 ~ -1,-1,-1", 0, "Generating SIS installation file...", "Range not specified 2."],
+ ["test03.pkg", "1, 0, 0", 0, "Generating SIS installation file...", "Only from specified 1."],
+ ["test04.pkg", "1,-1,-1 ~ -1,-1,-1", 0, "Generating SIS installation file...", "Only from specified 2."],
+ ["test05.pkg", "1,-1,-1 ~ 2,-1,-1", 0, "Generating SIS installation file...", "Correct from and to specified."],
+ ["test06.pkg", "-1,-1,-1 ~ 2,-1,-1", 0, "Generating SIS installation file...", "Only to specified."],
+ ["test07.pkg", "1,-1,-1 ~ 1,-1,-1", 0, "Generating SIS installation file...", "Correct. Same Major, not minor specified."],
+ ["test08.pkg", "1, 1,-1 ~ 1, 1,-1", 0, "Generating SIS installation file...", "Correct. Same Major, minor and not build specified."],
+ ["test09.pkg", "1, 1,-1 ~ 1, 2,-1", 0, "Generating SIS installation file...", "Correct. Same Major and differ minor specified."],
+ ["test10.pkg", "1, 1, 1 ~ 1, 1, 2", 0, "Generating SIS installation file...", "Correct. Same Major, Minor and differ build specified."],
+ ["test11.pkg", "1, 1,-1 ~ 1, 1, 2", 0, "Generating SIS installation file...", "Correct. Same Major, Minor and differ build specified."],
+ ["test12.pkg", "1, 1, 1 ~ 1, 1, 1", 0, "Generating SIS installation file...", "Correct. Same Major, minor and build specified."],
+ ["test13.pkg", "4,-1,-1 ~ 2,-1,-1", 256, "verification failure", "Wrong range of major of from and to."],
+ ["test14.pkg", "1, 2,-1 ~ 1, 1,-1", 256, "verification failure", "Wrong range of minor of from and to."],
+ ["test15.pkg", "1, 2, 2 ~ 1, 2, 1", 256, "verification failure", "Wrong range of build of from and to."],
+ ["test16.pkg", "1,-1,-1 ~ 2,1,1 ", 256, "invalid destination path or syntax", "exe name contains non ascii characters."],
+ ["test17.pkg", "1,-1,-1 ~ 2,1,1 ", 256, "invalid destination path or syntax", "package file encoding is not supported."],
+ ["testForward.pkg", "1,-1,-1 ~ 2,1,1 ", 0, "Generating SIS installation file...", "package file can have forward slash."],
+ ["testFN_RI.pkg", "1,0,0 ~ 1,0,0", 0, "Generating SIS installation file...", "DEF126367: Check interaction between FN and RI."]
+ );
+
+
+# For DEF92320
+# Test for filename & Dir name, should not contain symbols like |,/,<,>,:,?,*
+# Array of contents of test pkgs
+#
+# file name, symbols , expected , expected log, Title
+# result message
+# --------------------------------------------------------------------------------------------------------------------------
+@TestItems1 = ( ["test01.pkg", "*", 256, "invalid destination path or syntax", "File paths should not contain *,:,<,>"],
+ ["test02.pkg", "\"<42>\"", 256, "invalid destination path or syntax", "File paths should not contain *,:,<,>"],
+ ["test03.pkg", "?", 256, "invalid destination path or syntax", "File paths should not contain *,:,<,>"],
+ ["test05.pkg", " \"", 256, "error: unknown line", "File paths should not contain *,:,<,>"],
+ ["test06.pkg", "<", 256, "invalid destination path or syntax", "File paths should not contain *,:,<,>"],
+ ["test07.pkg", ">", 256, "invalid destination path or syntax", "File paths should not contain *,:,<,>"],
+ ["test08.pkg", "|", 256, "invalid destination path or syntax", "File paths should not contain *,:,<,>"],
+ ["test11.pkg", "\"<58>\"", 256, "invalid destination path or syntax", "File paths should not contain *,:,<,>"],
+ ["test12.pkg", ":", 256, "invalid destination path or syntax", "File paths should not contain *,:,<,>"],
+ ["test13.pkg", "\"<63>\"", 256, "invalid destination path or syntax", "File paths should not contain *,:,<,>"],
+ ["test14.pkg", "\"<34>\"", 256, "invalid destination path or syntax", "File paths should not contain *,:,<,>"],
+ ["test15.pkg", "\"<62>\"", 256, "invalid destination path or syntax", "File paths should not contain *,:,<,>"],
+ ["test16.pkg", "\"<124>\"", 256, "invalid destination path or syntax", "File paths should not contain *,:,<,>"],
+ ["test17.pkg", "\"<60>\"", 256, "invalid destination path or syntax", "File paths should not contain *,:,<,>"],
+ ["test18.pkg", "\"<92>\"", 0, "Generating SIS installation file...", "contain \\"],
+ ["test19.pkg", "*", 256, "invalid destination path or syntax", "DIR paths should not contain *,:,<,>"],
+ ["test20.pkg", "\"<42>\"", 256, "invalid destination path or syntax", "DIR paths should not contain *,:,<,>"],
+ ["test21.pkg", "?", 256, "invalid destination path or syntax", "DIR paths should not contain *,:,<,>"],
+ ["test23.pkg", " \"", 256, "error: unknown line", "DIR paths should not contain *,:,<,>"],
+ ["test24.pkg", "<", 256, "invalid destination path or syntax", "DIR paths should not contain *,:,<,>"],
+ ["test25.pkg", ">", 256, "invalid destination path or syntax", "DIR paths should not contain *,:,<,>"],
+ ["test26.pkg", "|", 256, "invalid destination path or syntax", "DIR paths should not contain *,:,<,>"],
+ ["test28.pkg", "\"<58>\"", 256, "invalid destination path or syntax", "DIR paths should not contain *,:,<,>"],
+ ["test29.pkg", ":", 256, "invalid destination path or syntax", "DIR paths should not contain *,:,<,>"],
+ ["test30.pkg", "\"<63>\"", 256, "invalid destination path or syntax", "DIR paths should not contain *,:,<,>"],
+ ["test31.pkg", "\"<34>\"", 256, "invalid destination path or syntax", "DIR paths should not contain *,:,<,>"],
+ ["test32.pkg", "\"<62>\"", 256, "invalid destination path or syntax", "DIR paths should not contain *,:,<,>"],
+ ["test33.pkg", "\"<124>\"", 256, "invalid destination path or syntax", "DIR paths should not contain *,:,<,>"],
+ ["test34.pkg", "\"<60>\"", 256, "invalid destination path or syntax", "DIR paths should not contain *,:,<,>"],
+ ["test35.pkg", "\"<92>\"", 0, "Generating SIS installation file...", "DIR pcontain\\"],
+ );
+
+
+
+# CR1125 - Add Package Versions to SIS File Conditionals Test Cases
+# Array of test PKG data and expected results for each test case and associated itterations
+#
+# file name, conditional statement, Expected, Expected Test Case ID
+# result log
+# ------------------------------------------------------------------------------------------------------------------------------------
+@TestItems2 = ( ["test01.pkg", "VERSION(0xE1000001,=,1,2,3)", 0, "Generating SIS installation file...", "CR1125 SEC-SWI-PKGVER-A001 : A"],
+ ["test02.pkg", "VERSION(0xE1000001,<>,1,2,3)", 0, "Generating SIS installation file...", "CR1125 SEC-SWI-PKGVER-A001 : B"],
+ ["test03.pkg", "VERSION(0xE1000001,>,1,2,3)", 0, "Generating SIS installation file...", "CR1125 SEC-SWI-PKGVER-A001 : C"],
+ ["test04.pkg", "VERSION(0xE1000001,>=,1,2,3)", 0, "Generating SIS installation file...", "CR1125 SEC-SWI-PKGVER-A001 : D"],
+ ["test05.pkg", "VERSION(0xE1000001,<,1,2,3)", 0, "Generating SIS installation file...", "CR1125 SEC-SWI-PKGVER-A001 : E"],
+ ["test06.pkg", "VERSION(0xE1000001,<=,1,2,3)", 0, "Generating SIS installation file...", "CR1125 SEC-SWI-PKGVER-A001 : F"],
+ ["test07.pkg", "VERSION(test,=,1,2,3)", 256, "Expected numeric value read alphanumeric value", "CR1125 SEC-SWI-PKGVER-A002 : A"],
+ ["test08.pkg", "VERSION(0xE1000001,test,1,2,3)", 256, "Invalid Relational Operator", "CR1125 SEC-SWI-PKGVER-A002 : B"],
+ ["test09.pkg", "VERSION(0xE1000001,=,test,2,3)", 256, "Expected numeric value read alphanumeric value", "CR1125 SEC-SWI-PKGVER-A002 : C"],
+ ["test10.pkg", "VERSION(0xE1000001,=,1,test,3)", 256, "Expected numeric value read alphanumeric value", "CR1125 SEC-SWI-PKGVER-A002 : D"],
+ ["test11.pkg", "VERSION(0xE1000001,=,1,2,test)", 256, "Expected numeric value read alphanumeric value", "CR1125 SEC-SWI-PKGVER-A002 : E"],
+ ["test12.pkg", "VERSION(0xE1000001,=,-2,2,3)", 256, "Negative version components are not supported", "CR1125 SEC-SWI-PKGVER-A003 : A"],
+ ["test13.pkg", "VERSION(0xE1000001,=,-1,2,3)", 256, "Wildcards are not supported", "CR1125 SEC-SWI-PKGVER-A003 : B"],
+ ["test14.pkg", "VERSION(0xE1000001,=,0,2,3)", 0, "Generating SIS installation file...", "CR1125 SEC-SWI-PKGVER-A003 : C"],
+ ["test15.pkg", "VERSION(0xE1000001,=,1,2,3)", 0, "Generating SIS installation file...", "CR1125 SEC-SWI-PKGVER-A003 : D"],
+ ["test16.pkg", "VERSION(0xE1000001,=,126,2,3)", 0, "Generating SIS installation file...", "CR1125 SEC-SWI-PKGVER-A003 : E"],
+ ["test17.pkg", "VERSION(0xE1000001,=,127,2,3)", 0, "Generating SIS installation file...", "CR1125 SEC-SWI-PKGVER-A003 : F"],
+ ["test18.pkg", "VERSION(0xE1000001,=,128,2,3)", 0, "Warning : The valid version number ranges are :", "CR1125 SEC-SWI-PKGVER-A003 : G"],
+ ["test19.pkg", "VERSION(0xE1000001,=,1,-2,3)", 256, "Negative version components are not supported", "CR1125 SEC-SWI-PKGVER-A003 : H"],
+ ["test20.pkg", "VERSION(0xE1000001,=,1,-1,3)", 256, "Wildcards are not supported", "CR1125 SEC-SWI-PKGVER-A003 : I"],
+ ["test21.pkg", "VERSION(0xE1000001,=,1,0,3)", 0, "Generating SIS installation file...", "CR1125 SEC-SWI-PKGVER-A003 : J"],
+ ["test22.pkg", "VERSION(0xE1000001,=,1,1,3)", 0, "Generating SIS installation file...", "CR1125 SEC-SWI-PKGVER-A003 : K"],
+ ["test23.pkg", "VERSION(0xE1000001,=,1,98,3)", 0, "Generating SIS installation file...", "CR1125 SEC-SWI-PKGVER-A003 : L"],
+ ["test24.pkg", "VERSION(0xE1000001,=,1,99,3)", 0, "Generating SIS installation file...", "CR1125 SEC-SWI-PKGVER-A003 : M"],
+ ["test25.pkg", "VERSION(0xE1000001,=,1,100,3)", 0, "Warning : The valid version number ranges are :", "CR1125 SEC-SWI-PKGVER-A003 : N"],
+ ["test26.pkg", "VERSION(0xE1000001,=,1,2,-2)", 256, "Negative version components are not supported", "CR1125 SEC-SWI-PKGVER-A003 : O"],
+ ["test27.pkg", "VERSION(0xE1000001,=,1,2,-1)", 256, "Wildcards are not supported", "CR1125 SEC-SWI-PKGVER-A003 : P"],
+ ["test28.pkg", "VERSION(0xE1000001,=,1,2,0)", 0, "Generating SIS installation file...", "CR1125 SEC-SWI-PKGVER-A003 : Q"],
+ ["test29.pkg", "VERSION(0xE1000001,=,1,2,1)", 0, "Generating SIS installation file...", "CR1125 SEC-SWI-PKGVER-A003 : R"],
+ ["test30.pkg", "VERSION(0xE1000001,=,1,2,32766)", 0, "Generating SIS installation file...", "CR1125 SEC-SWI-PKGVER-A003 : S"],
+ ["test31.pkg", "VERSION(0xE1000001,=,1,2,32767)", 0, "Generating SIS installation file...", "CR1125 SEC-SWI-PKGVER-A003 : T"],
+ ["test32.pkg", "VERSION(0xE1000001,=,1,2,32768)", 0, "Warning : The valid version number ranges are :", "CR1125 SEC-SWI-PKGVER-A003 : U"],
+ ["test33.pkg", "VERSION(0xE1000001,=,*,2,3)", 256, "Wildcards are not supported", "CR1125 SEC-SWI-PKGVER-A004 : A"],
+ ["test34.pkg", "VERSION(0xE1000001,=,1,*,3)", 256, "Wildcards are not supported", "CR1125 SEC-SWI-PKGVER-A004 : B"],
+ ["test35.pkg", "VERSION(0xE1000001,=,1,2,*)", 256, "Wildcards are not supported", "CR1125 SEC-SWI-PKGVER-A004 : C"],
+ ["test36.pkg", "VERSION(0xE1000001,=,1,2,)", 256, "Expected numeric value read ", "CR1125 SEC-SWI-PKGVER-A005 : A"],
+ ["test37.pkg", "VERSION(0xE1000001,=,1,)", 256, "Expected numeric value read ", "CR1125 SEC-SWI-PKGVER-A005 : B"],
+ ["test38.pkg", "VERSION(0xE1000001,=,)", 256, "Expected numeric value read ", "CR1125 SEC-SWI-PKGVER-A005 : C"],
+ ["test39.pkg", "VERSION(0xE1000001,)", 256, "Invalid Relational Operator", "CR1125 SEC-SWI-PKGVER-A005 : D"],
+ ["test40.pkg", "VERSION()", 256, "Expected numeric value read ", "CR1125 SEC-SWI-PKGVER-A005 : E"],
+ ["testinterpretflag.pkg", "VERSION(0x11113011,=,1,2,3)", 0, "SIS installation file VALID for InterpretSis", "CR1125 SEC-SWI-PKGVER-A006"],
+ );
+
+
+#
+# Template string to generate PKG file
+#
+$AnotherPkgFileTempl = "
+;
+; Autogenerated test install file
+;
+&EN
+;
+#{\"my test\"}, (0x80002233), 1, 2, 3, TYPE=SA
+;
+%%{\"Vendor\"}
+;
+;Installation name and header data
+(0x101f74aa),%s,{\"test\"}
+;
+;Made up files to install
+\"HelloApp.exe\"-\"c:\\sys\\bin\\multiÅžÑEEžÑEEÊ.exe\"
+;
+";
+
+
+#
+# Template string to generate PKG file
+#
+$PkgFileTempl = "
+;
+; Autogenerated test install file
+;
+&EN
+;
+#{\"test\"}, (0x101f74aa), 1, 0, 0, TYPE=SA
+;
+%%{\"Ati\"}
+;
+;Installation name and header data
+(0x101f74aa),%s,{\"test\"}
+;
+;Made up files to install
+\"TEST.txt\"-\"!:\\System\\Apps\\TEST.txt\"
+;
+
+";
+
+#
+#
+# Pkg file can have forward slashes for source and destination file
+$ForwardSlash = "
+;
+; Autogenerated test install file
+;
+&EN
+;
+#{\"test\"}, (0x101f74aa), 1, 0, 0, TYPE=SA
+;
+%{\"Ati\"}
+;
+
+;Made up files to install
+
+\"TEST.txt\"-\"!:/Documents/InstTest/file1.txt\"
+;
+";
+
+#
+#
+# Package file contains a FileNull followed by a RunInstall. The wildcard in the FN should be allowed and
+# makesis should not be confused by the flags in the RI
+$FN_RI ="
+&EN
+#{\"Symbian Email\"}, (0x800126e5), 1, 0, 0, TYPE=SA
+%{\"Symbian\"}
+:\"Symbian\"
+
+\"\"- \"C:/private/80009b91/temp/*.*\", FN
+\"HelloApp.exe\"-\"C:/sys/bin/postinstall.exe\", FR, RI
+";
+
+#
+#
+# Pkg file can have forward slashes for source and destination file
+$ForwardSlash = "
+;
+; Autogenerated test install file
+;
+&EN
+;
+#{\"test\"}, (0x101f74aa), 1, 0, 0, TYPE=SA
+;
+%{\"Ati\"}
+;
+
+;Made up files to install
+
+\"TEST.txt\"-\"!:/Documents/InstTest/file1.txt\"
+;
+";
+
+
+#
+# Template string to generate PKG file
+#
+$PkgFileTemp2 = "
+;
+; Autogenerated test install file
+;
+&EN
+;
+#{\"test\"}, (0x101f74aa), 1, 0, 0, TYPE=SA
+;
+%%{\"Ati\"}
+;
+;Installation name and header data
+(0x101f74aa),%s,{\"test\"}
+;
+;Made up files to install
+\"TEST.txt\"-\"\$\:\\System\\Apps\\TEST.txt\"
+;
+";
+
+#
+# Template string to generate embedded package (testembedded.pkg).This is used for testing -d option of makesis .
+#
+$embedContents = "
+;
+; Autogenerated test install file for testing -d option.
+;
+&EN
+;
+#{\"embed\"}, (0x101f74a0), 1, 0, 0, TYPE=SA
+;
+%{\"Ati\"}
+;
+;Installation name and header data
+(0x101f74a0),%s,{\"embed\"}
+;
+;embedded sis file
+\@\"testembedding.sis\",(0x101f74aa)
+
+;Made up files to install
+\"TEST.txt\"-\"!:\\System\\Apps\\TEST.txt\"
+;
+";
+
+#
+# Template string to generate a package with 0xA0 chars (No-Break Space) inside
+#
+$ifendifContent = "
+;
+; Autogenerated test install file for testing DEF091780: Makesis have problems parsing IF-ENDIF block
+;
+
+;Languages
+&JA,FR
+
+;Header
+#{\"JA hira UCS2\",\"FR hira UCS2\" }, (0x80000003), 1, 2, 3, TYPE=SA
+%{\"AA-JA\",\"CC-FR\"}
+:\"venDor\"
+
+!({\"JAOpt1\",\"FROpt1\"},{\"JAOpt3\",\"FROpt3\"})
+
+if option1
+\xA0\xA0\xA0{\"osver1J.txt\" \"osver1F.txt\"}-\"!:\\documents\\hello.txt\";
+endif
+
+if option2
+\xA0\xA0\xA0{\"osver2J.txt\" \"osver2F.txt\"}-\"!:\\documents\\hello.txt\";
+endif
+";
+
+#
+#
+# A string to generate a package with Japanese JIS 0208-1990 encoding
+$unsupportedEncContent = "
+;Languages
+&JA
+
+;Header
+#{\"PC Japanese JIS 0208-1990 encoding\"}, (0xA2000222), 1, 2, 3, TYPE=SA
+
+%{\"Vendor\"}
+:\"Vendor\"
+
+\"TEST.txt\"-\"!:\Documents\InstTest\ñÃñâñâEtxt\"
+";
+
+
+#
+# Template string to generate PKG file with If Exist statement for DEF091860.
+#
+$DEF091860PkgContents = "
+;
+; PKG file designed to test conditional installation.
+; Autogenerated test install file
+;
+&EN
+;
+#{\"test\"}, (0x101f74aa), 1, 0, 0, TYPE=SA
+;
+%{\"Ati\"}
+;
+;Installation name and header data
+(0x101f74aa),%s,{\"test\"}
+;
+;Made up files to install
+\"TEST.txt\"-\"!:\\System\\Apps\\TEST.txt\"
+;
+; The file âtest1.txtâEis expected to exist.
+if exists(\"test1.txt\")
+\"TEST.txt\"-\"!:\\System\\Apps\\TEST1.txt\"
+else
+\"TEST.txt\"-\"!:\\System\\Apps\\TEST2.txt\"
+endif
+
+; The file âtest2.txtâEis not expected to exist.
+if exists(\"test2.txt\")
+\"TEST.txt\"-\"!:\\System\\Apps\\TEST3.txt\"
+else
+\"TEST.txt\"-\"!:\\System\\Apps\\TEST4.txt\"
+endif
+;
+";
+
+#
+# Template string to generate PKG file for language dependent files
+#
+$PkgLanguageFileTemp = "
+;
+;
+&EN,FR,98
+;
+#{\"Language-EN\",\"Langauge-FR\",\"Language-Zulu\"}, (0x101f74aa), 1, 0, 0, TYPE=SA
+;
+%%{\"Vendor\",\"Vendour\",\"Verkoper\"}
+;
+;
+;Made up files to install
+{\"englishfile.txt\" \"frenchfile.txt\" \"germanfile.txt\"} -\"!:\\System\\Apps\\TEST.txt\"
+;
+";
+
+
+
+# For DEF92320
+# Template string to generate PKG file,File name contain symbols like |,/,<,>,:,?,*
+#
+$PkgFileWithSymbol = "
+;
+; Autogenerated test install file
+;
+&EN
+;
+#{\"test\"}, (0x101f74aa), 1, 2, 3, TYPE=SA
+;
+%%{\"Ati\"}
+;
+;Made up files to install
+\"TEST.txt\"-\"!:\\System\\Apps\\TEST%s.txt\"
+;
+";
+
+# For DEF92320
+# Template string to generate PKG file, DIR path contain symbols like |,/,<,>,:,?,*
+#
+$PkgFileWithSymbol1 = "
+;
+; Autogenerated test install file
+;
+&EN
+;
+#{\"test\"}, (0x101f74aa), 1, 2, 3, TYPE=SA
+;
+%%{\"Ati\"}
+;
+;Made up files to install
+\"TEST.txt\"-\"!:\\System\\Ap%sps\\TEST.txt\"
+;
+";
+
+# For DEF115795
+# Template string to generate a package with very long destination folder
+#
+$longfolder = "
+;
+&EN
+;
+#{\"STSisapt444\"},(0x88900000),1,1,1,NOCOMPRESS,TYPE= SA
+;
+%{\"Test\"}
+;
+;
+\"TEST.txt\"-\"!:\siv1aaa\\10003a3f\\import\\apps\\siv2aa\\10003a3f\\import\\apps\\siv3aa\\10003a3f\\import\\apps\\siv4aa\\10003a3f\\import\\apps\\siv5aa\\10003a3f\\import\\apps\\siv6aa\\10003a3f\\import\\apps\\siv7aa\\10003a3f\\import\\apps\\siv8aa\\10003a3f\\import\\apps\\siv9aa\\10003a3f\\import\\apps\\siv10a\\10003a3f\\import\\apps\\siv11a\\10003a3f\\import\\appspp\\file1.txt\"
+;
+";
+
+#
+# Template string to generate a package with comma at the end
+#
+$endFileCommaContent = "
+; A simple SIS file
+
+;Languages
+&EN,FR
+
+;Header
+#{\"Simple\",\"Simple-FR\"}, (0x80000001), 4, 5, 6
+
+%{\"Simple-Vendor\",\"Simple-Vendor-FR\"}
+:\"Unique Vendor Name\"
+
+;Ordinary file to selected drive
+\"TEST.txt\"-\"!:/Documents/InstTest/file1.txt\",
+";
+
+
+# Data to write in the created file for Linux test
+$TempData = "Osver";
+
+#
+# Template string to generate PKG file
+#
+$JAPPkgFileTempl = "
+;
+; Autogenerated test install file
+;
+&JA
+;
+#{\"names large sample UTF8\"}, (0xA2000222), 1, 2, 3, TYPE=SA
+;
+%%{\"Vendor\"}
+;
+
+;Made up files to install
+\"\\epoc32\\winscw\\c\\tswi\\utf8.txt\"-\"!:\\utf8.txt\"
+;
+
+";
+
+
+#
+# Package template string to generate PKG file with RU and SA
+#
+$PkgFileRUWithSA = "
+;
+; Autogenerated test install file
+;
+&EN
+;
+#{\"SA ROM Upgrade\"}, (0x802730A2), 1, 0, 0, TYPE=SA, RU
+;
+%%{\"Security Services\"}
+;
+;Installation name and header data
+(0x802730A2),%s,{\"SA ROM Upgrade\"}
+;
+;Made up files to install
+\"TEST.txt\"-\"\$\:\\System\\Apps\\TEST.txt\"
+;
+";
+
+#
+# Package template string to generate PKG file with RU and non SA or PU or SP
+#
+$PkgFileRUWithNonSA = "
+;
+; Autogenerated test install file
+;
+&EN
+;
+#{\"SA ROM Upgrade\"}, (0x802730A2), 1, 0, 0, TYPE=PP, RU
+;
+%%{\"Security Services\"}
+;
+;Installation name and header data
+(0x802730A2),%s,{\"SA ROM Upgrade\"}
+;
+;Made up files to install
+\"TEST.txt\"-\"\$\:\\System\\Apps\\TEST.txt\"
+;
+";
+
+#
+# Package template string to generate PKG file with wildcards for ROM Stub.
+#
+$WildCardedpkgFile = "
+;
+; Autogenerated test install file
+;
+&EN
+;
+#{\"Wildcard Suported ROM App\"}, (0x802730B1), 1, 2, 3
+;
+%%{\"Security Services\"}
+;
+;Installation name and header data
+(0x802730B1),%s,{\"Wildcard Suported ROM App\"}
+;
+;Made up files to install
+\"\"-\"z:\\sys\\bin\\wildcard_rom_stub_lib?.dll\"
+;
+\"\"-\"z:\\sys\\bin\\*.exe\"
+;
+
+; Misc data files for baseline eclipsing test
+\"\"-\"z:\\cr1122test\\*.txt\"
+;
+\"\"-\"z:\\cr1122etst\\wildcard_config?.cnf\"
+;
+";
+
+
+#
+# Package template string to generate PKG file with wildcards for PA package
+#
+$WildCardedPApkgFile = "
+;
+; Autogenerated test install file
+;
+&EN
+;
+#{\"Wildcarded PA\"}, (0x802730B1), 1, 2, 3, TYPE = PA
+;
+%%{\"Security Services\"}
+;
+;Installation name and header data
+(0x802730B1),%s,{\"wildcarded PA\"}
+;
+;Made up files to install
+\"\\epoc32\\release\\<PLATFORM>\\<CONFIGURATION>\\tsaromupgradeexe.exe\"-\"c:\\sys\\bin\\*exe_PA?.exe\"
+;
+";
+
+#
+# Package template string to generate PKG file with wildcards for PP package
+#
+$WildCardedPApkgFile = "
+;
+; Autogenerated test install file
+;
+&EN
+;
+#{\"Wildcarded PP\"}, (0x802730B1), 1, 2, 3, TYPE = PP
+;
+%%{\"Security Services\"}
+;
+;Installation name and header data
+(0x802730B1),%s,{\"Wildcarded PP\"}
+;
+;Made up files to install
+\"\\epoc32\\release\\<PLATFORM>\\<CONFIGURATION>\\tsaromupgradeexe.exe\"-\"c:\\sys\\bin\\*exe_PA?.exe\"
+;
+";
+
+#
+# Package template string to generate PKG file having wildcards specified in the executable filename.
+#
+$ExeWithWildCardpkgFile = "
+;
+; Autogenerated test install file
+;
+&EN
+;
+#{\"Wildcard in Exe Name\"}, (0x801130c1), 1, 2, 3
+;
+%%{\"Security Services\"}
+;
+;Installation name and header data
+(0x801130c1),%s,{\"Wildcard in Exe Name\"}
+;
+;Made up files to install
+\"\"-\"z:\\sys\\bin\\wildcard_rom_stub.*\"
+;
+\"\"-\"z:\\sys\\bin\\wildcard_rom_stub?.dll\"
+;
+";
+
+#
+# Template string to generate a package with invalid version
+#
+$invalidVersion1 = "
+; A simple SIS file
+
+;Languages
+&EN,FR
+
+;Header
+#{\"Simple\",\"Simple-FR\"}, (0x80000001), 32767, 32767, 32767
+
+%{\"Simple-Vendor\",\"Simple-Vendor-FR\"}
+:\"Unique Vendor Name\"
+
+;Ordinary file to selected drive
+\"TEST.txt\"-\"!:/Documents/InstTest/file1.txt\"
+";
+
+
+#
+# Template string to generate a package with invalid version number for negative values
+#
+$invalidVersion2 = "
+; A simple SIS file
+
+;Languages
+&EN,FR
+
+;Header
+#{\"Simple\",\"Simple-FR\"}, (0x80000001), -26, -1, -3245
+
+%{\"Simple-Vendor\",\"Simple-Vendor-FR\"}
+:\"Unique Vendor Name\"
+
+;Ordinary file to selected drive
+\"TEST.txt\"-\"!:/Documents/InstTest/file1.txt\"
+";
+
+#
+# Template string to generate a pkg with an embedded sis file. The embedded sis file is missing on the computer.
+#
+$missingEmbed = "
+;
+; Pkg referencing missing embedded package.
+;
+&EN
+;
+#{\"missing embedded\"}, (0x80000001), 1, 0, 0, TYPE=SA
+;
+;missing embedded sis file
+\@\"missingembedded.sis\",(0x80000002)
+;
+";
+
+# Package template string to generate PKG file with ForceAbort (FA) text option.
+#
+$PkgFileWithFAOption = "
+;
+; Autogenerated test install file
+;
+&EN
+;
+#{\"Force Abort Text Option\"}, (0x8072302A), 1, 0, 0, TYPE=SA
+;
+%%{\"Security Services\"}
+;
+;Installation name and header data
+(0x802730A2),%s,{\"SA ROM Upgrade\"}
+;
+;Made up files to install
+\"TEST.txt\"-\"\", FT , FA
+;
+";
+
+#
+#Test code for Preinstalled pkg files without having sourcefiles
+#
+$PreinstalledPkgWithoutSourcefiles = "
+;A preinstalled SIS file
+
+;Languages
+&EN,FR
+
+;Header
+#{\"Simple\",\"Simple-FR\"}, (0x80000001), 1, 2, 3, TYPE = PA
+
+%{\"Simple-Vendor\",\"Simple-Vendor-FR\"}
+:\"Unique Vendor Name\"
+
+;Ordinary file to selected drive
+\"\"-\"!:/Documents/InstTest/file1.txt\"
+";
+
+
+
+#
+# Template string to generate Expected output file for ROM stub file (containing exe with wildcards) created by makesis for DEF111264.
+#
+$DEF111264ExpectedOutput= "Unique vendor name not found.
+
+Warning: Executables should be included explicitly (without wildcards),to enable SID checks to work as expected.
+";
+
+#
+# Template string to generate Expected output file for Preinstalled APP package having no source files specified.
+#
+$DEF113569ExpectedOutput= " Error : Source file is missing for PreInstalled APP :
+(14) : error: file I/O fault.
+";
+
+
+#
+# Template string to generate Expected output file when the version range is invalid.
+
+$DEF112718ExpectedOutput= "Warning : The valid version number ranges are : (Major: 0..127) (Minor: 0..99 ) (Build: 0..32,767).\n";
+
+#
+# Package template string to generate an embedded PKG file of type PA.
+#
+$EmbeddedPApkgFile = "
+;
+; Autogenerated test install file
+;
+&EN
+;
+#{\"Test Embedded PA\"}, (0x01101335), 1, 1, 1, TYPE=PA
+;
+%{\"Symbian Software Ltd\"}
+:\"Symbian Software Ltd\"
+;
+;Installation name and header data
+(0x01101335),%s,{\"Test Embedded PA\"}
+;
+";
+
+#
+# Package template string to generate an embedding PKG file whose embedded pkg is of type=PA.
+#
+$EmbeddingPApkgFile = "
+;
+; Autogenerated test install file
+;
+&EN
+;
+#{\"Test Embedding PA\"}, (0x01011243), 1, 0, 1, TYPE=SA
+;
+%{\"Symbian Software Ltd\"}
+:\"Symbian Software Ltd\"
+;
+;Installation name and header data
+(0x01011243),%s,{\"Test Embedding PA\"}
+;
+\@\"embeddedPA.sis\" , (0x01101335)
+;
+";
+
+#
+# CR1125 VERSION Condition Package template string to generate PKG files
+#
+$PkgFileCR1125VersionTemplate = "
+;
+; Auto Generated Template PKG File
+; VERSION Conditional Testing
+;
+&EN
+;
+#{\"CR1125 SEC-SWI-PKGVER\"}, (0xEA001000), 1, 0, 2, TYPE=SA
+%{\"Symbian Software Ltd.\"}
+: \"Symbian Software Ltd.\"
+;
+; Version Conditional Block
+IF %s
+ {
+ \"TEST.txt\"
+ }-\"C:\\tswi\\tpkgver\\test_result_etrue.txt\"
+ENDIF
+;
+";
+
+# PREQ2344 - Added SUPPORTED_LANGUAGE token to .pkg File format for supporting device supported language installation
+# Array of test PKG data and expected results for each test case and associated itterations
+#
+# File name, Supported language, Package header , Vendor name , Default vendor name ,Language block , Supported language block , Option list , Test case ID , Expected error code , Log message
+# -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+@TestItems3 = ( ["test01.pkg", "EN , FR " , " \"Supported Language EN\" , \"Supported Language FR\" " , "\"Symbian Software Ltd. EN \" , \"Symbian Software Ltd. FR\"" , " " , " " , "IF SUPPORTED_LANGUAGE = 01 \n\n\"SupportedLanguageEN.txt\"-\"!:\\sys\\bin\\SupportedLanguageEN.txt\" \n\nENDIF \n\nIF SUPPORTED_LANGUAGE = 02 \n\n\"SupportedLanguageFR.txt\"-\"!:\\sys\\bin\\SupportedLanguageFR.txt\" \n\nENDIF " , " " , "API-Inst-PREQ2344-MakeSIS-01", 0 , "Generating SIS installation file..." ],
+ ["test02.pkg", "EN , FR , GE " , " \"Supported Language EN\" , \"Supported Language FR\" , \"Supported Language GE\" " , "\"Symbian Software Ltd. EN \" , \"Symbian Software Ltd. FR\" , \"Symbian Software Ltd. GE\"" , ": \"Symbian Software Ltd.\"", " " , "IF SUPPORTED_LANGUAGE = 01 \n\n\"SupportedLanguageEN.txt\"-\"!:\\sys\\bin\\SupportedLanguageEN.txt\" \n\nENDIF \n\nIF SUPPORTED_LANGUAGE = 02 \n\n\"SupportedLanguageFR.txt\"-\"!:\\sys\\bin\\SupportedLanguageFR.txt\" \n\nENDIF " , " " , "API-Inst-PREQ2344-MakeSIS-02", 0 , "Generating SIS installation file..." ],
+ ["test03.pkg", "EN , FR , GE " , " \"Supported Language EN\" , \"Supported Language FR\" , \"Supported Language GE\" " , "\"Symbian Software Ltd. EN \" , \"Symbian Software Ltd. FR\" , \"Symbian Software Ltd. GE\"" , ": \"Symbian Software Ltd.\"", " " , "IF SUPPORTED_LANGUAGE = 01 \n\n\"SupportedLanguageEN.txt\"-\"!:\\sys\\bin\\SupportedLanguageEN.txt\" \n\nENDIF \n\nIF SUPPORTED_LANGUAGE = 02 \n\n\"SupportedLanguageFR.txt\"-\"!:\\sys\\bin\\SupportedLanguageFR.txt\" \n\nENDIF \n\nIF SUPPORTED_LANGUAGE = 03 \n\n\"SupportedLanguageGE.txt\"-\"!:\\sys\\bin\\SupportedLanguageGE.txt\" \n\nENDIF \n\nIF SUPPORTED_LANGUAGE = 157 \n\n\"SupportedLanguageYW.txt\"-\"!:\\sys\\bin\\SupportedLanguageYW.txt\" \n\nENDIF" , " " , "API-Inst-PREQ2344-MakeSIS-03", 0 , "Generating SIS installation file..." ],
+ ["test04.pkg", "EN , FR" , " \"Supported Language EN\" , \"Supported Language FR\" " , "\"Symbian Software Ltd. EN \" , \"Symbian Software Ltd. FR\"" , ": \"Symbian Software Ltd.\"", "IF (LANGUAGE=01) \n\n\"SupportedLanguageEN.txt\"-\"!:\\sys\\bin\\SupportedLanguageEN.txt\" \n\nELSEIF (LANGUAGE=02) \n\n\"SupportedLanguageFR.txt\"-\"!:\\sys\\bin\\SupportedLanguageFR.txt\" \n\nENDIF " , "IF SUPPORTED_LANGUAGE = ((01) \n\n\"SupportedLanguageEN.txt\"-\"!:\\sys\\bin\\SupportedLanguageEN.txt\" \n\nENDIF \n\nIF SUPPORTED_LANGUAGE = 02 \n\n\"SupportedLanguageFR.txt\"-\"!:\\sys\\bin\\SupportedLanguageFR.txt\" \n\nENDIF" , "!({\"Option1 EN\",\"Option2 EN\" },{\"Option1 FR\" , \"Option2 FR\"}) \n\nif option1 = 1 \n\n\"Option1.txt\"-\"!:\\sys\\bin\\Option1.txt\"; \n\nendif \n\nif option2 = 1 \n\n\"Option1.txt\"-\"!:\\sys\\bin\\Option1.txt\"; \n\nendif \n ", "API-Inst-PREQ2344-MakeSIS-04", 256 , "error: parenthesis are not balanced" ],
+ ["test05.pkg", "EN , FR" , " \"Supported Language EN\" , \"Supported Language FR\" " , "\"Symbian Software Ltd. EN \" , \"Symbian Software Ltd. FR\"" , ": \"Symbian Software Ltd.\"", "IF (LANGUAGE=01) \n\n\"SupportedLanguageEN.txt\"-\"!:\\sys\\bin\\SupportedLanguageEN.txt\" \n\nELSEIF (LANGUAGE=02) \n\n\"SupportedLanguageFR.txt\"-\"!:\\sys\\bin\\SupportedLanguageFR.txt\" \n\nENDIF " , "IF SUPPORTED_LANGUAGE = -9874 \n\n\"SupportedLanguageEN.txt\"-\"!:\\sys\\bin\\SupportedLanguageEN.txt\" \n\nENDIF \n\nIF SUPPORTED_LANGUAGE = 8754 \n\n\"SupportedLanguageFR.txt\"-\"!:\\sys\\bin\\SupportedLanguageFR.txt\" \n\nENDIF" , "!({\"Option1 EN\",\"Option2 EN\" },{\"Option1 FR\" , \"Option2 FR\"}) \n\nif option1 = 1 \n\n\"Option1.txt\"-\"!:\\sys\\bin\\Option1.txt\"; \n\nendif \n\nif option2 = 1 \n\n\"Option2.txt\"-\"!:\\sys\\bin\\Option2.txt\"; \n\nendif \n ", "API-Inst-PREQ2344-MakeSIS-05", 0 , "Generating SIS installation file..." ],
+ ["test06.pkg", "EN , FR" , " \"Supported Language EN\" , \"Supported Language FR\" " , "\"Symbian Software Ltd. EN \" , \"Symbian Software Ltd. FR\"" , ": \"Symbian Software Ltd.\"", "IF (LANGUAGE=01) \n\n\"SupportedLanguageEN.txt\"-\"!:\\sys\\bin\\SupportedLanguageEN.txt\" \n\nELSEIF (LANGUAGE=02) \n\n\"SupportedLanguageFR.txt\"-\"!:\\sys\\bin\\SupportedLanguageFR.txt\" \n\nENDIF " , "IF SUPPORTED_LANGUAGE = 08 \n\n IF SUPPORTED_LANGUAGE = 01 \n\n \"SupportedLanguageEN.txt\"-\"!:\\sys\\bin\\SupportedLanguageEN.txt\" \n\n ENDIF \n\nENDIF \n\nIF SUPPORTED_LANGUAGE = 09 \n\n IF SUPPORTED_LANGUAGE = 08 \n\n IF SUPPORTED_LANGUAGE = 02 \n\n \"SupportedLanguageFR.txt\"-\"!:\\sys\\bin\\SupportedLanguageFR.txt\" \n\n ENDIF \n\n ENDIF \n\nENDIF" , "!({\"Option1 EN\",\"Option2 EN\" },{\"Option1 FR\" , \"Option2 FR\"}) \n\nif option1 = 1 \n\n\"Option1.txt\"-\"!:\\sys\\bin\\Option1.txt\"; \n\nendif \n\nif option2 = 1 \n\n\"Option2.txt\"-\"!:\\sys\\bin\\Option2.txt\"; \n\nendif \n ", "API-Inst-PREQ2344-MakeSIS-06", 0 , "Generating SIS installation file..." ],
+ ["test07.pkg", "EN , FR" , " \"Supported Language EN\" , \"Supported Language FR\" " , "\"Symbian Software Ltd. EN \" , \"Symbian Software Ltd. FR\"" , ": \"Symbian Software Ltd.\"", "IF (LANGUAGE=01) \n\n\"SupportedLanguageEN.txt\"-\"!:\\sys\\bin\\SupportedLanguageEN.txt\" \n\nELSEIF (LANGUAGE=02) \n\n\"SupportedLanguageFR.txt\"-\"!:\\sys\\bin\\SupportedLanguageFR.txt\" \n\nENDIF " , "IF SUPPORTED_LANGUAGE = 10 \n\n\"SupportedLanguageEN.txt\"-\"!:\\sys\\bin\\SupportedLanguageEN.txt\" \n\nELSEIF SUPPORTED_LANGUAGE = 01 \n\n\"SupportedLanguageEN.txt\"-\"!:\\sys\\bin\\SupportedLanguageEN.txt\" \n\nELSEIF SUPPORTED_LANGUAGE = 02 \n\n\"SupportedLanguageFR.txt\"-\"!:\\sys\\bin\\SupportedLanguageFR.txt\" \n\nENDIF" , "!({\"Option1 EN\",\"Option2 EN\" },{\"Option1 FR\" , \"Option2 FR\"}) \n\nif option1 = 1 \n\n\"Option1.txt\"-\"!:\\sys\\bin\\Option1.txt\"; \n\nendif \n\nif option2 = 1 \n\n\"Option2.txt\"-\"!:\\sys\\bin\\Option2.txt\"; \n\nendif \n ", "API-Inst-PREQ2344-MakeSIS-07", 0 , "Generating SIS installation file..." ],
+ ["test08.pkg", "EN , FR" , " \"Supported Language EN\" , \"Supported Language FR\" " , "\"Symbian Software Ltd. EN \" , \"Symbian Software Ltd. FR\"" , ": \"Symbian Software Ltd.\"", "IF (LANGUAGE=01) \n\n\"SupportedLanguageEN.txt\"-\"!:\\sys\\bin\\SupportedLanguageEN.txt\" \n\nELSEIF (LANGUAGE=02) \n\n\"SupportedLanguageFR.txt\"-\"!:\\sys\\bin\\SupportedLanguageFR.txt\" \n\nENDIF " , "IF SUPPORTED_LANGUAGE = (01) and (02) OR (98) \n\n\"SupportedLanguageEN.txt\"-\"!:\\sys\\bin\\SupportedLanguageEN.txt\" \n\nENDIF \n\nIF SUPPORTED_LANGUAGE = 02 \n\n\"SupportedLanguageFR.txt\"-\"!:\\sys\\bin\\SupportedLanguageFR.txt\" \n\nENDIF" , "!({\"Option1 EN\",\"Option2 EN\" },{\"Option1 FR\" , \"Option2 FR\"}) \n\nif option1 = 1 \n\n\"Option1.txt\"-\"!:\\sys\\bin\\Option1.txt\"; \n\nendif \n\nif option2 = 1 \n\n\"Option2.txt\"-\"!:\\sys\\bin\\Option2.txt\"; \n\nendif \n ", "API-Inst-PREQ2344-MakeSIS-08", 0 , "Generating SIS installation file..." ],
+ ["test09.pkg", "EN , FR" , " \"Supported Language EN\" , \"Supported Language FR\" " , "\"Symbian Software Ltd. EN \" , \"Symbian Software Ltd. FR\"" , ": \"Symbian Software Ltd.\"", "IF (LANGUAGE=01) \n\n\"SupportedLanguageEN.txt\"-\"!:\\sys\\bin\\SupportedLanguageEN.txt\" \n\nENDIF \n\nIF (LANGUAGE=02) \n\n\"SupportedLanguageFR.txt\"-\"!:\\sys\\bin\\SupportedLanguageFR.txt\" \n\nENDIF " , "IF SUPPORTED_LANGUAGE = 01 \n\n\"SupportedLanguageEN.txt\"-\"!:\\sys\\bin\\SupportedLanguageEN.txt\" \n\nENDIF \n\nIF SUPPORTED_LANGUAGE = 02 \n\n\"SupportedLanguageFR.txt\"-\"!:\\sys\\bin\\SupportedLanguageFR.txt\" \n\nENDIF" , "!({\"Option1 EN\",\"Option2 EN\" },{\"Option1 FR\" , \"Option2 FR\"}) \n\nif option1 = 1 \n\n\"Option1.txt\"-\"!:\\sys\\bin\\Option1.txt\"; \n\nendif \n\nif option2 = 1 \n\n\"Option2.txt\"-\"!:\\sys\\bin\\Option2.txt\"; \n\nendif \n ", "API-Inst-PREQ2344-MakeSIS-09", 0 , "Generating SIS installation file..." ],
+ ["test10.pkg", "EN , FR" , " \"Supported Language EN\" , \"Supported Language FR\" " , "\"Symbian Software Ltd. EN \" , \"Symbian Software Ltd. FR\"" , ": \"Symbian Software Ltd.\"", "IF (LANGUAGE=01) \n\n\"SupportedLanguageEN.txt\"-\"!:\\sys\\bin\\SupportedLanguageEN.txt\" \n\nELSEIF (LANGUAGE=02) \n\n\"SupportedLanguageFR.txt\"-\"!:\\sys\\bin\\SupportedLanguageFR.txt\" \n\nENDIF " , "IF SUppORTed_LanGUAGE = 01 \n\n\"SupportedLanguageEN.txt\"-\"!:\\sys\\bin\\SupportedLanguageEN.txt\" \n\nENDIF \n\nIF supported_language = 02 \n\n\"SupportedLanguageFR.txt\"-\"!:\\sys\\bin\\SupportedLanguageFR.txt\" \n\nENDIF" , "!({\"Option1 EN\",\"Option2 EN\" },{\"Option1 FR\" , \"Option2 FR\"}) \n\nif option1 = 1 \n\n\"Option1.txt\"-\"!:\\sys\\bin\\Option1.txt\"; \n\nendif \n\nif option2 = 1 \n\n\"Option2.txt\"-\"!:\\sys\\bin\\Option2.txt\"; \n\nendif \n ", "API-Inst-PREQ2344-MakeSIS-10", 0 , "Generating SIS installation file..." ],
+ ["test11.pkg", "EN , FR" , " \"Supported Language EN\" , \"Supported Language FR\" " , "\"Symbian Software Ltd. EN \" , \"Symbian Software Ltd. FR\"" , ": \"Symbian Software Ltd.\"", "IF (LANGUAGE=01) \n\n\"SupportedLanguageEN.txt\"-\"!:\\sys\\bin\\SupportedLanguageEN.txt\" \n\nELSEIF (LANGUAGE=02) \n\n\"SupportedLanguageFR.txt\"-\"!:\\sys\\bin\\SupportedLanguageFR.txt\" \n\nENDIF " , "IF SUPPORTED_LANGUAGE = 01 \n\n\"SupportedLanguageEN.txt\"-\"!:\\sys\\bin\\SupportedLanguageEN.txt\" \n\nENDIF \n\nIF SUPPORTED_LANGUAGE = 02 \n\n\"SupportedLanguageFR.txt\"-\"!:\\sys\\bin\\SupportedLanguageFR.txt\" \n\nENDIF" , "!({\"Option1 EN\",\"Option2 EN\" },{\"Option1 FR\" , \"Option2 FR\"}) \n\nif option1 = 1 \n\n\"Option1.txt\"-\"!:\\sys\\bin\\Option1.txt\"; \n\nendif \n\nif option2 = 1 \n\n\"Option2.txt\"-\"!:\\sys\\bin\\Option2.txt\"; \n\nendif \n ", "API-Inst-PREQ2344-MakeSIS-11", 0 , "Generating SIS stub file..." ],
+ ["test12.pkg", "EN , FR" , " \"Supported Language EN\" , \"Supported Language FR\" " , "\"Symbian Software Ltd. EN \" , \"Symbian Software Ltd. FR\"" , ": \"Symbian Software Ltd.\"", "IF (LANGUAGE=01) \n\n\"SupportedLanguageEN.txt\"-\"!:\\sys\\bin\\SupportedLanguageEN.txt\" \n\nELSEIF (LANGUAGE=02) \n\n\"SupportedLanguageFR.txt\"-\"!:\\sys\\bin\\SupportedLanguageFR.txt\" \n\nENDIF " , "IF SUPPORTED_LANGUAGE = EN \n\n\"SupportedLanguageEN.txt\"-\"!:\\sys\\bin\\SupportedLanguageEN.txt\" \n\nENDIF \n\nIF SUPPORTED_LANGUAGE = FR \n\n\"SupportedLanguageFR.txt\"-\"!:\\sys\\bin\\SupportedLanguageFR.txt\" \n\nENDIF" , "!({\"Option1 EN\",\"Option2 EN\" },{\"Option1 FR\" , \"Option2 FR\"}) \n\nif option1 = 1 \n\n\"Option1.txt\"-\"!:\\sys\\bin\\Option1.txt\"; \n\nendif \n\nif option2 = 1 \n\n\"Option2.txt\"-\"!:\\sys\\bin\\Option2.txt\"; \n\nendif \n ", "API-Inst-PREQ2344-MakeSIS-12", 256 , "error: Expected numeric value read alphanumeric value" ],
+ ["test13.pkg", "EN , FR" , " \"Supported Language EN\" , \"Supported Language FR\" " , "\"Symbian Software Ltd. EN \" , \"Symbian Software Ltd. FR\"" , ": \"Symbian Software Ltd.\"", "IF (LANGUAGE=01) \n\n\"SupportedLanguageEN.txt\"-\"!:\\sys\\bin\\SupportedLanguageEN.txt\" \n\nELSEIF (LANGUAGE=02) \n\n\"SupportedLanguageFR.txt\"-\"!:\\sys\\bin\\SupportedLanguageFR.txt\" \n\nENDIF " , "IF SUPPORTED_LANGUAGE = 01 \n\n\"SupportedLanguageEN.r01\"-\"!:\\sys\\bin\\SupportedLanguageEN.r01\" \n\nENDIF \n\nIF SUPPORTED_LANGUAGE = 02 \n\n\"SupportedLanguageFR.txt\"-\"!:\\sys\\bin\\SupportedLanguageFR.txt\" \n\nENDIF" , "!({\"Option1 EN\",\"Option2 EN\" },{\"Option1 FR\" , \"Option2 FR\"}) \n\nif option1 = 1 \n\n\"Option1.txt\"-\"!:\\sys\\bin\\Option1.txt\"; \n\nendif \n\nif option2 = 1 \n\n\"Option2.txt\"-\"!:\\sys\\bin\\Option2.txt\"; \n\nendif \n ", "API-Inst-PREQ2344-MakeSIS-13", 0 , "Generating SIS installation file..." ],
+ ["test14.pkg", "EN , FR" , " \"Supported Language EN\" , \"Supported Language FR\" " , "\"Symbian Software Ltd. EN \" , \"Symbian Software Ltd. FR\"" , ": \"Symbian Software Ltd.\"", " " , "IF SUPPORTED_LANGUAGE = 01 OR SUPPORTED_LANGUAGE = 08 AND SUPPORTED_LANGUAGE = 04 \n\n\"SupportedLanguageEN.txt\"-\"!:\\sys\\bin\\SupportedLanguageEN.txt\" \n\nENDIF \n\nIF SUPPORTED_LANGUAGE = 02 AND SUPPORTED_LANGUAGE = 03 AND SUPPORTED_LANGUAGE = 06 \n\n\"SupportedLanguageFR.txt\"-\"!:\\sys\\bin\\SupportedLanguageFR.txt\" \n\nENDIF" , "!({\"Option1 EN\",\"Option2 EN\" },{\"Option1 FR\" , \"Option2 FR\"}) \n\nif option1 = 1 \n\n\"Option1.txt\"-\"!:\\sys\\bin\\Option1.txt\"; \n\nendif \n\nif option2 = 1 \n\n\"Option2.txt\"-\"!:\\sys\\bin\\Option2.txt\"; \n\nendif \n ", "API-Inst-PREQ2344-MakeSIS-14", 0 , "Generating SIS installation file..." ],
+ ["test15.pkg", "EN , FR" , " \"Supported Language EN\" , \"Supported Language FR\" " , "\"Symbian Software Ltd. EN \" , \"Symbian Software Ltd. FR\"" , ": \"Symbian Software Ltd.\"", " " , "IF SUPPORTED_LANGUAGE(01) \n\n IF LANGUAGE(01) \n\n\"SupportedLanguageEN.txt\"-\"!:\\sys\\bin\\SupportedLanguageEN.txt\" \n\n ENDIF \n\nENDIF \n\nIF SUPPORTED_LANGUAGE = 02 \n\n\"SupportedLanguageFR.txt\"-\"!:\\sys\\bin\\SupportedLanguageFR.txt\" \n\nENDIF" , "!({\"Option1 EN\",\"Option2 EN\" },{\"Option1 FR\" , \"Option2 FR\"}) \n\nif option1 = 1 \n\n\"Option1.txt\"-\"!:\\sys\\bin\\Option1.txt\"; \n\nendif \n\nif option2 = 1 \n\n\"Option2.txt\"-\"!:\\sys\\bin\\Option2.txt\"; \n\nendif \n ", "API-Inst-PREQ2344-MakeSIS-15", 256 , "error: Expected = read (" ],
+);
+
+#
+# PREQ2344 SUPPORTED_LANGUAGE Package template string to generate PKG files
+#
+$PkgFilePREQ2344SupportedLanguageTemplate = "
+;
+; Auto Generated Template PKG File
+; Supported Language token testing
+;
+;Language
+
+&%s
+
+;
+;Package Header
+
+\#{ %s }, (0xEA001000), 1, 0, 2, TYPE=SA
+
+;Vendor name
+
+\%{ %s}
+
+;Default vendor name
+
+%s
+
+;
+; Language Conditional Block
+
+%s
+;
+; Supported Language Conditional Block
+
+%s
+;
+; Option List
+
+%s
+;
+";
+
+#
+# Template string to generate Expected output file for DEF113349.
+#
+$DEF113349ExpectedOutput= "embeddedPA.sis is a stub.
+WARNING : Embedded Preinstalled Stub (PA/PP type) SIS file is not supported.
+(16) : error: SISfile error.
+";
+
+#
+# Do test for each elements of TestItems array
+#
+for my $Test ( @TestItems ) {
+
+ # Generating PKG file contents
+ if( $Test->[0] eq "test16.pkg" )
+ {
+ $PkgFile = sprintf( $AnotherPkgFileTempl, $Test->[1]);
+ }
+ elsif ( $Test->[0] eq "test17.pkg" )
+ {
+ $PkgFile = $unsupportedEncContent;
+ }
+ elsif ( $Test->[0] eq "testForward.pkg" )
+ {
+ $PkgFile = $ForwardSlash;
+ }
+ elsif ( $Test->[0] eq "testFN_RI.pkg" )
+ {
+ $PkgFile = $FN_RI;
+ }
+ else
+ {
+ $PkgFile = sprintf( $PkgFileTempl, $Test->[1]);
+ }
+
+ # Create PKG file
+ CreateFile($Test->[0], $PkgFile);
+
+ # Do MAKESIS test
+
+ $logMsg = sprintf "%s\n (symbol:%s)\n", $Test->[4], $Test->[1];
+ WriteLog($logMsg);
+
+ MakeSISFile($Test->[0], $Test->[2], $Test->[3]);
+
+}
+
+#
+# Do test for each elements of TestItems1 array
+#
+ $Count = 1;
+for my $Test1 ( @TestItems1 ) {
+
+ # Generating PKG file contents
+ if( $Count >= 19 )
+ {
+ $PkgFile = sprintf( $PkgFileWithSymbol1 , $Test1->[1]);
+ $Count ++ ;
+ }
+ else
+ {
+ $PkgFile = sprintf( $PkgFileWithSymbol , $Test1->[1]);
+ $Count++ ;
+ }
+
+ # Create PKG file
+ CreateFile($Test1->[0], $PkgFile);
+
+ # Do MAKESIS test
+
+ $logMsg1 = sprintf "%s\n (Symbol:%s)\n", $Test1->[4], $Test1->[1];
+ WriteLog($logMsg1);
+
+ MakeSISFile($Test1->[0], $Test1->[2], $Test1->[3]);
+
+}
+
+
+#
+# Run CR1125 MakeSIS Tests (TestItems2 array)
+#
+for my $Test2 ( @TestItems2 ) {
+
+ # Generating PKG file contents
+ $PkgFile = sprintf( $PkgFileCR1125VersionTemplate , $Test2->[1]);
+
+ # Create PKG file
+ CreateFile($Test2->[0], $PkgFile);
+
+ # Do MAKESIS test
+ $logMsg1 = sprintf "%s\n (Condition: %s)\n", $Test2->[4], $Test2->[1];
+ WriteLog($logMsg1);
+
+ MakeSISFile($Test2->[0], $Test2->[2], $Test2->[3]);
+}
+
+#
+# Generate files used in .pkg for PREQ2344 test
+#
+$contents = "This is a dummy file for testing.";
+CreateFile('SupportedLanguageEN.r01', $contents);
+CreateFile('SupportedLanguageEN.txt', $contents);
+CreateFile('SupportedLanguageFR.txt', $contents);
+CreateFile('SupportedLanguageGE.txt', $contents);
+CreateFile('SupportedLanguageYW.txt', $contents);
+CreateFile('Option1.txt', $contents);
+CreateFile('Option2.txt', $contents);
+
+#
+# Run PREQ2344 MakeSIS Tests (TestItems2 array)
+#
+$Count = 1; # Taken counter variable to pass various Makesis option based on test case no
+for my $Test3 ( @TestItems3 ) {
+ # Generating PKG file contents
+ $PkgFile = sprintf( $PkgFilePREQ2344SupportedLanguageTemplate , $Test3->[1],$Test3->[2],$Test3->[3],$Test3->[4],$Test3->[5],$Test3->[6],,$Test3->[7]);
+
+ # Create PKG file
+ CreateFile($Test3->[0], $PkgFile);
+
+ # Do MAKESIS test
+ $logMsg1 = sprintf "Test Case ID %s\n", $Test3->[8];
+ WriteLog($logMsg1);
+
+ if( $Count == 11 ) {
+ MakeSISFilePREQ2344($Test3->[0], $Test3->[9], $Test3->[10], " -s ");
+ $Count ++ ;
+ }
+ else {
+ MakeSISFilePREQ2344($Test3->[0], $Test3->[9], $Test3->[10], " ");
+ $Count ++ ;
+ }
+}
+
+unlink("SupportedLanguageEN.r01");
+unlink("SupportedLanguageEN.txt");
+unlink("SupportedLanguageFR.txt");
+unlink("SupportedLanguageGE.txt");
+unlink("SupportedLanguageYW.txt");
+unlink("Option1.txt");
+unlink("Option2.txt");
+
+#
+# Additional test to check that stub files don't change every time
+# they are built.
+#
+TestSISStubFile();
+
+#
+# Test for Test$parameter()
+#
+TestsysDriveparameter();
+
+# Call the tests for CR1027 - ROM Upgrade with SA SIS package.
+TestSisRUWithSA();
+TestSisRUWithNonSA();
+
+# Call the test for CR1122 - Wildcard support for ROM stub.
+TestSISWithWildCards();
+TestSISWithWildCardsPA();
+TestSISWithWildCardsPP();
+
+#
+# Test for DEF111264.Verifying that warnings are generated by Makesis
+# when wildcards are used in \sys\bin directory in ROM stubs.
+#
+
+TestDEF111264();
+
+#
+# Test for DEF113116.
+#
+TestDEF113116();
+
+#
+# Test for DEF083525
+#
+TestDEF083525();
+
+#
+# Test for PDEF081989.Testing the working of Makesis -d option .
+#
+
+TestPDEF081989();
+
+
+#
+# Test for DEF093400
+#
+TestDEF093400();
+
+#
+# Test for DEF090878
+#
+TestDEF090878();
+
+#
+# Test for DEF107033.Testing the working of Makesis -d option with language dependent files.
+#
+
+TestDEF107033();
+
+# Test for an output filename with a single char - DEF108728
+TestSingleCharFilename();
+
+# Test for DEF108815
+TestEndFileComma();
+
+
+# Test for DEF115795
+TestLongFolderName();
+
+# Test for DEF112718-1
+TestInvalidVersion1();
+
+# Test for DEF112718-2
+TestInvalidVersion2();
+
+# Test for DEF112831
+TestDEF112831();
+
+#
+# Test for DEF113349.
+#
+
+TestDEF113349();
+
+# Test for DEF113569
+TestPreInstalledWithoutSourceFiles();
+
+#
+# These tests are very specific to windows OS only
+#
+#
+
+if ($^O =~ /^MSWIN32$/i)
+{
+#
+# Test for DEF091860
+#
+TestDEF091860();
+
+#
+# Test for DEF091942.
+#
+TestDEF091942();
+
+#
+# Test for INC092755
+#
+TestINC092755();
+
+#
+# Test for DEF090912
+#
+TestDEF090912();
+
+#
+# Test for DEF093156
+#
+TestDEF093156();
+
+#
+# Test for TestDEF091780
+#
+TestDEF091780();
+
+#
+# Test for DEF104895.Testing the working of Makesis -d option with
+# embedding sis file in path containing backward slasesh.
+#
+
+TestDEF104895();
+}
+
+#
+# These tests are very specific to Linux OS only
+#
+#
+if ($^O =~ /^LINUX$/i)
+{
+
+#
+# Test for DEF091942.
+#
+TestLDEF091942();
+
+
+#
+# Test for DEF090912
+#
+TestLDEF090912();
+
+#
+# Test for DEF104895.Testing the working of Makesis -d option with
+# embedding sis file in path containing backward slasesh.
+#
+
+TestLDEF104895();
+
+}
+
+
+unlink("Test.txt");
+unlink("HelloApp.exe");
+unlink("test1.txt");
+unlink("test2.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 );