diff -r 2d2d25361590 -r d1838696558c installationservices/switestfw/test/autotesting/testMakesis.pl --- a/installationservices/switestfw/test/autotesting/testMakesis.pl Tue Sep 28 14:48:39 2010 +0300 +++ b/installationservices/switestfw/test/autotesting/testMakesis.pl Thu Oct 14 14:11:30 2010 +0300 @@ -1,4 +1,5 @@ -# +#!/usr/bin/perl +# # Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). # All rights reserved. # This component and the accompanying materials are made available @@ -15,9 +16,18 @@ # 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"; +if ($^O =~ /^LINUX$/i) +{ + $logFile = "$ENV{EPOCROOT}/epoc32/winscw/c/makesis_test.txt"; + $makesisExeLocation = "makesis"; + $dumpsisExeLocation = "dumpsis"; +} +else +{ + $logFile = "/epoc32/winscw/c/makesis_test.txt"; + $makesisExeLocation = "/epoc32/tools/makesis"; + $dumpsisExeLocation = "/epoc32/tools/dumpsis"; +} sub GetTmpFilesCount() { @@ -304,7 +314,14 @@ $testembeddingsis = "testembedding.sis"; $testembeddedpkg = "testembedded.pkg"; $testembeddedsis = "testembedded.sis"; - $sisFileToEmbed = "/epoc32/winscw/c/"; + if ($^O =~ /^LINUX$/i) + { + $sisFileToEmbed = "$ENV{EPOCROOT}/epoc32/winscw/c/"; + } + else + { + $sisFileToEmbed = "/epoc32/winscw/c/"; + } $outputFile = $sisFileToEmbed.$testembeddingsis; $testEmbedLog = "testembedded.log"; @@ -457,7 +474,7 @@ $testembeddingsis = "testembedding.sis"; $testembeddedpkg = "testembedded.pkg"; $testembeddedsis = "testembedded.sis"; - $sisFileToEmbed = "\\\\epoc32\\\\winscw\\\\c\\\\"; + $sisFileToEmbed = "$ENV{EPOCROOT}/epoc32/winscw/c/"; $outputFile = $sisFileToEmbed.$testembeddingsis; $testEmbedLog = "testembedded.log"; @@ -621,7 +638,7 @@ $NumberOfTests++; - my $file = "/epoc32/winscw/c/tswi/passed.txt"; + my $file = "$ENV{EPOCROOT}/epoc32/winscw/c/tswi/passed.txt"; WriteLog("Test for DEF091942 - makesis can not handle package files names written with japanese symbols\n"); @@ -654,7 +671,72 @@ unlink("$pkgfile.pkg"); } - +# Linux Test +# Test code for RC DEF577103 +# Test case generates a SIS. Recreate the SIS file and checks the file access permissions. +# Make the SIS file readonly & then recreate the SIS file and checks the file access permissions. + +sub TestLRCDEF577103{ + + $pkgfile = "/tmp/file.pkg"; + $sisfile = "/tmp/file.sis"; + $logfile = "/tmp/file.log"; + + $NumberOfTests++; + + my $file = "$ENV{EPOCROOT}/epoc32/winscw/c/tswi/passed.txt"; + + WriteLog("Test for RC DEF577103 - File access permission changes after makesis on an existing SIS file\n"); + + # Generate test PKG file contents. + $PkgFile = sprintf( $PkgLanguageFileTemp); + # Create PKG file + CreateFile($pkgfile, $PkgFile); + + # Do MAKESIS + my $result = system("$makesisExeLocation $pkgfile $sisfile > $logfile"); + + # Do MAKESIS (Re-create) + my $result1 = system("$makesisExeLocation $pkgfile $sisfile > $logfile"); + + use File::stat; + $sb = stat($sisfile); + my $mode = $sb->mode & 07777; + + $logMsg = sprintf "Expected mode:%04o\n", $mode; + WriteLog( $logMsg); + + # Make the SIS file readonly + chmod(0444, "$sisfile"); + $sb = stat($sisfile); + my $mode1 = $sb->mode & 07777; + + $logMsg = sprintf "Read-only mode :%04o\n", $mode1; + WriteLog( $logMsg); + + # Do MAKESIS (Re-create) + my $result2 = system("$makesisExeLocation $pkgfile $sisfile > $logfile"); + + $sb = stat($sisfile); + my $mode2 = $sb->mode & 07777; + + $logMsg = sprintf "Expected code:%5d result Code:%5d mode : %04o\n", $expectedResult, $?, $mode2; + WriteLog( $logMsg); + + #mode = 0664 if executed by user else mode = 0644 if executed by root depending upon umask + if( $? == $expectedResult && $result == 0 && $result1 == 0 && $result2 == 0 && $mode == 0664 && $mode1 == 0444 && $mode2 == 0664) { + $NumberOfPassed++; + WriteLog("Passed\n\n"); + } + else { + $NumberOfFailed++; + WriteLog("Failed\n\n"); + } + + unlink("$pkgfile"); + unlink("$sisfile"); + unlink("$logfile"); +} # # New test code for DEF091780 - Makesis have problems parsing IF-ENDIF block @@ -1046,7 +1128,7 @@ # sub TestLDEF090912 { - my $path = "/epoc32/winscw/c/tswi"; + my $path = "$ENV{EPOCROOT}/epoc32/winscw/c/tswi"; my $ucs2 = "$path/ナソト.txt"; my $pkgfile = "$path/ucs2jpn"; my $expectedResult = 0; @@ -1545,10 +1627,17 @@ my $OutputData = "Processing $pkgFile...\n$DEF111264ExpectedOutput$trailingData"; CreateFile($ExpectedLogFile ,$OutputData); - + my $result = 0; # Create a sis file - my $result = system("/epoc32/tools/makesis -s $pkgFile $sisFile > $LogFile"); - + if ($^O =~ /^LINUX$/i) + { + $result = system("$ENV{EPOCROOT}/epoc32/tools/makesis -s $pkgFile $sisFile > $LogFile"); + } + else + { + $result = system("/epoc32/tools/makesis -s $pkgFile $sisFile > $LogFile"); + } + use File::Compare; my $result1; @@ -1604,8 +1693,7 @@ CreateFile($pkgEmbeddedFile, $PkgFile); # Create SIS file for the embedded package of type = PA. - my $result = system("/epoc32/tools/makesis $pkgEmbeddedFile $sisEmbeddedFile > $LogFile"); - + my $result = system("makesis $pkgEmbeddedFile $sisEmbeddedFile > $LogFile"); # Generate test PKG file contents for embedding pkg file. $PkgFile = sprintf( $EmbeddingPApkgFile, "-1,-1,-1"); @@ -1613,7 +1701,7 @@ CreateFile($pkgFile , $PkgFile); # Create SIS file for the embedding package of type = SA. - my $result1 = system("/epoc32/tools/makesis $pkgFile $sisFile > $LogFile"); + my $result1 = system("makesis $pkgFile $sisFile > $LogFile"); my $OutputData = "Processing $pkgFile...\n$DEF113349ExpectedOutput"; @@ -1728,7 +1816,7 @@ CreateFile($pkgEmbeddedFile, $PkgFile); # Create SIS file for the embedded package. - my $result = system("/epoc32/tools/makesis $pkgEmbeddedFile $sisEmbeddedFile > $LogFile"); + my $result = system("makesis $pkgEmbeddedFile $sisEmbeddedFile > $LogFile"); # Generate test PKG file contents for embedding pkg file. $PkgFile = sprintf( $PkgFileInterpretsisVersionTemplate, "-1,-1,-1"); @@ -1737,7 +1825,7 @@ CreateFile($pkgFile , $PkgFile); # Create SIS file for the embedding package of type = SA. - my $result1 = system("/epoc32/tools/makesis -c $pkgFile $sisFile > $LogFile"); + my $result1 = system("makesis -c $pkgFile $sisFile > $LogFile"); # Create expected log file my $trailingData = "Created $sisFile."; @@ -1782,8 +1870,15 @@ # New test code for DEF145101 - MakeSIS cannot handle package files that contain large (>1000) language codes. # sub TestDEF145101 { - - my $path = "/epoc32/winscw/c/tswi"; + my $path; + if ($^O =~ /^LINUX$/i) + { + $path = "$ENV{EPOCROOT}/epoc32/winscw/c/tswi"; + } + else + { + $path = "/epoc32/winscw/c/tswi"; + } my $pkgfile = "$path/largelanguagecodes"; my $expectedResult = 0; @@ -3021,6 +3116,11 @@ TestLDEF104895(); +# +# Test for RC DEF577103 +# +TestLRCDEF577103(); + }