installationservices/switestfw/test/autotesting/testMakesis.pl
changeset 0 ba25891c3a9e
child 25 7333d7932ef7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/switestfw/test/autotesting/testMakesis.pl	Thu Dec 17 08:51:10 2009 +0200
@@ -0,0 +1,3001 @@
+#
+# 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: 
+# 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);
+	
+	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\\<PLATFORM>\\<CONFIGURATION>\\tsaromupgradeexe.exe\"-\"c:\\sys\\bin\\*exe_PA?.exe\"
+;
+";
+
+#
+# Package template string to generate PKG file with wildcards for PP package
+#
+$WildCardedPApkgFile = "
+;
+; Autogenerated test install file
+;
+&EN
+;
+#{\"Wildcarded PP\"}, (0x802730B1), 1, 2, 3, TYPE = PP
+;
+%%{\"Security Services\"}
+;
+;Installation name and header data
+(0x802730B1),%s,{\"Wildcarded PP\"}
+;
+;Made up files to install
+\"\\epoc32\\release\\<PLATFORM>\\<CONFIGURATION>\\tsaromupgradeexe.exe\"-\"c:\\sys\\bin\\*exe_PA?.exe\"
+;
+";
+
+#
+# Package template string to generate PKG file having wildcards specified in the executable filename.
+#
+$ExeWithWildCardpkgFile = "
+;
+; Autogenerated test install file
+;
+&EN
+;
+#{\"Wildcard in Exe Name\"}, (0x801130c1), 1, 2, 3
+;
+%%{\"Security Services\"}
+;
+;Installation name and header data
+(0x801130c1),%s,{\"Wildcard in Exe Name\"}
+;
+;Made up files to install
+\"\"-\"z:\\sys\\bin\\wildcard_rom_stub.*\"
+;
+\"\"-\"z:\\sys\\bin\\wildcard_rom_stub?.dll\"
+;
+";
+
+#
+# Template string to generate a package with invalid version
+#
+$invalidVersion1 = "
+; A simple SIS file
+
+;Languages
+&EN,FR
+
+;Header
+#{\"Simple\",\"Simple-FR\"}, (0x80000001), 32767, 32767, 32767
+
+%{\"Simple-Vendor\",\"Simple-Vendor-FR\"}
+:\"Unique Vendor Name\"
+	
+;Ordinary file to selected drive
+\"TEST.txt\"-\"!:/Documents/InstTest/file1.txt\"
+";
+
+
+#
+# Template string to generate a package with invalid version number for negative values
+#
+$invalidVersion2 = "
+; A simple SIS file
+
+;Languages
+&EN,FR
+
+;Header
+#{\"Simple\",\"Simple-FR\"}, (0x80000001), -26, -1, -3245
+
+%{\"Simple-Vendor\",\"Simple-Vendor-FR\"}
+:\"Unique Vendor Name\"
+	
+;Ordinary file to selected drive
+\"TEST.txt\"-\"!:/Documents/InstTest/file1.txt\"
+";
+
+#
+# Template string to generate a pkg with an embedded sis file. The embedded sis file is missing on the computer.
+#
+$missingEmbed = "
+;
+; Pkg referencing missing embedded package.
+;
+&EN
+;
+#{\"missing embedded\"}, (0x80000001), 1, 0, 0, TYPE=SA
+;
+;missing embedded sis file
+\@\"missingembedded.sis\",(0x80000002)
+;
+";
+
+# Package template string to generate PKG file with ForceAbort (FA) text option.
+#
+$PkgFileWithFAOption = "
+;
+; Autogenerated test install file
+;
+&EN
+;
+#{\"Force Abort Text Option\"}, (0x8072302A), 1, 0, 0, TYPE=SA
+;
+%%{\"Security Services\"}
+;
+;Installation name and header data
+(0x802730A2),%s,{\"SA ROM Upgrade\"}
+;
+;Made up files to install
+\"TEST.txt\"-\"\", FT , FA
+;
+";
+
+#
+#Test code for Preinstalled pkg files without having sourcefiles
+#
+$PreinstalledPkgWithoutSourcefiles = "
+;A preinstalled SIS file
+
+;Languages
+&EN,FR
+
+;Header
+#{\"Simple\",\"Simple-FR\"}, (0x80000001), 1, 2, 3, TYPE = PA
+
+%{\"Simple-Vendor\",\"Simple-Vendor-FR\"}
+:\"Unique Vendor Name\"
+	
+;Ordinary file to selected drive
+\"\"-\"!:/Documents/InstTest/file1.txt\"
+";
+
+
+
+#
+# Template string to generate Expected output file for ROM stub file (containing exe with wildcards) created by makesis for DEF111264.
+#
+$DEF111264ExpectedOutput= "Unique vendor name not found.
+
+Warning: Executables should be included explicitly (without wildcards),to enable SID checks to work as expected.
+";
+
+#
+# Template string to generate Expected output file for Preinstalled APP package having no source files specified.
+#
+$DEF113569ExpectedOutput= " Error : Source file is missing for PreInstalled APP : 
+(14) : error: file I/O fault, Source file is missing for PreInstalled APP 
+";
+
+
+#
+# Template string to generate Expected output file when the version range is invalid.
+
+$DEF112718ExpectedOutput= "Warning : The valid version number ranges are : (Major: 0..127) (Minor: 0..99 ) (Build: 0..32,767).\n";
+ 
+#
+# Package template string to generate an embedded PKG file of type PA.
+#
+$EmbeddedPApkgFile = "
+;
+; Autogenerated test install file
+;
+&EN
+;
+#{\"Test Embedded PA\"}, (0x01101335), 1, 1, 1, TYPE=PA
+;
+%{\"Symbian Software Ltd\"}
+:\"Symbian Software Ltd\"
+;
+;Installation name and header data
+(0x01101335),%s,{\"Test Embedded PA\"}
+;
+";
+
+#
+# Package template string to generate an embedding PKG file whose embedded pkg is of type=PA.
+#
+$EmbeddingPApkgFile = "
+;
+; Autogenerated test install file
+;
+&EN
+;
+#{\"Test Embedding PA\"}, (0x01011243), 1, 0, 1, TYPE=SA
+;
+%{\"Symbian Software Ltd\"}
+:\"Symbian Software Ltd\"
+;
+;Installation name and header data
+(0x01011243),%s,{\"Test Embedding PA\"}
+;
+\@\"embeddedPA.sis\" , (0x01101335)
+;
+";
+
+#
+# CR1125 VERSION Condition Package template string to generate PKG files
+#
+$PkgFileCR1125VersionTemplate = "
+;
+; Auto Generated Template PKG File
+; VERSION Conditional Testing
+;
+&EN
+;
+#{\"CR1125 SEC-SWI-PKGVER\"}, (0xEA001000), 1, 0, 2, TYPE=SA
+%{\"Symbian Software Ltd.\"}
+: \"Symbian Software Ltd.\"
+;
+; Version Conditional Block
+IF %s
+    {
+    \"TEST.txt\"
+    }-\"C:\\tswi\\tpkgver\\test_result_etrue.txt\"
+ENDIF
+;
+";
+
+
+# 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 , IF"		,	" \"Supported Language EN\" , \"Supported Language IF\" "								,	"\"Symbian Software Ltd. EN \" , \"Symbian Software Ltd. IF\""									,	": \"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 ("								],
+				 ["test16.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-16",	256	,	"error: Expected ) read quoted string"					],
+);
+	
+#
+# 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
+;
+";
+
+
+#
+# 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]);
+
+}
+
+
+#
+# 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 (TestItems3 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");
+
+
+#
+# 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 ); 
+