diff -r 675a964f4eb5 -r 35751d3474b7 cryptomgmtlibs/securitytestfw/test/autotesting/testMakesis.pl --- 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ŞсEEžÑEE”Ê.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\\\\\\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\\\\\\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ŞсEEžÑEE”Ê.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\\\\\\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\\\\\\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 ); +