--- a/cryptomgmtlibs/securitytestfw/test/autotesting/testMakesis.pl Tue Jul 21 01:04:32 2009 +0100
+++ b/cryptomgmtlibs/securitytestfw/test/autotesting/testMakesis.pl Thu Sep 10 14:01:51 2009 +0300
@@ -1,2898 +1,2864 @@
-#
-# 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 );
+#
+# 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");
+
+}
+
+#
+# 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);
+
+ my $trailingData = "Created $sisName.";
+ my $OutputData = "Processing $pkgName...\n$DEF112718ExpectedOutput$trailingData";
+
+ # Create expected log file
+ CreateFile($ExpectedLogFile ,$OutputData);
+
+ # 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);
+
+ my $OutputData = "Processing $pkgName...\n$DEF113569ExpectedOutput";
+
+ # Create expected log file
+ CreateFile($ExpectedLogFile ,$OutputData);
+
+ # 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
+ my $trailingData = "Created $sisFile.";
+ my $OutputData = "Processing $pkgFile...\n$DEF111264ExpectedOutput$trailingData";
+
+ CreateFile($ExpectedLogFile ,$OutputData);
+
+ # 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");
+
+ my $OutputData = "Processing $pkgFile...\n$DEF113349ExpectedOutput";
+
+ # Create expected log file
+ CreateFile($ExpectedLogFile ,$OutputData);
+
+ 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";
+
+}
+
+#
+# Test code for Makesis -c option.
+# This test verifies that errors are reported where the SIS file being generated will not be installable by InterpretSIS.
+#
+
+sub TestInterpretsisReport {
+
+ $pkgEmbeddedFile = "Emdedded.pkg";
+ $sisEmbeddedFile = "Embedded.sis";
+ $pkgFile = "Interpretsis.pkg";
+ $sisFile = "Interpretsis.sis";
+ $LogFile = "Interpretsis.log";
+ $ExpectedLogFile = "InterpretsisExpected.log";
+
+ WriteLog("Makesis -c\n");
+
+ # Generate test PKG file contents for the embedded pkg file.
+ $PkgFile = sprintf( $PkgFileTempl, "-1,-1,-1");
+
+ # Create PKG file
+ CreateFile($pkgEmbeddedFile, $PkgFile);
+
+ # Create SIS file for the embedded package.
+ my $result = system("/epoc32/tools/makesis $pkgEmbeddedFile $sisEmbeddedFile > $LogFile");
+
+ # Generate test PKG file contents for embedding pkg file.
+ $PkgFile = sprintf( $PkgFileInterpretsisVersionTemplate, "-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 -c $pkgFile $sisFile > $LogFile");
+
+ # Create expected log file
+ my $trailingData = "Created $sisFile.";
+ my $OutputData = "Processing $pkgFile...\n$InterpretsisExpectedOutput$trailingData";
+
+ CreateFile($ExpectedLogFile ,$OutputData);
+
+ 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;
+}
+
+#
+# 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, Source file is missing for PreInstalled APP
+";
+
+
+#
+# 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
+;
+";
+
+#
+# Package template string to generate a PKG with features not installable by InterpretSIS
+#
+$PkgFileInterpretsisVersionTemplate = "
+;
+; Autogenerated test install file
+;
+&EN
+;
+#{\"Test Makesis -c\"}, (0x01011243), 1, 0, 1, TYPE=PP
+;
+%{\"Symbian Software Ltd\"}
+:\"Symbian Software Ltd\"
+;
+!({\"Add-on 1 (20KB)\"},{\"Add-on 2 (75KB)\"},{\"Add-on 3 (80KB)\"})
+;
+\@\"Embedded.sis\" , (0x101f74aa)
+;
+";
+
+#
+# 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, Stub File
+";
+
+#
+#
+#
+$InterpretsisExpectedOutput= "*** SIS installation file INVALID for InterpretSis ***
+(8) : Invalid Application Type. Package type PP not supported
+(12) : User options are not supported
+(14) : Embedded SIS file will not be installed by InterpretSis
+";
+
+#
+# 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]);
+}
+
+
+#
+# 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();
+
+#
+# Test for Makesis -c option. Added as part of the fix for DEF126467.
+#
+TestInterpretsisReport();
+
+#
+# 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 );
+