diff -r 000000000000 -r ba25891c3a9e secureswitools/swianalysistoolkit/test/tdumpregistry/testregistry.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swianalysistoolkit/test/tdumpregistry/testregistry.pl Thu Dec 17 08:51:10 2009 +0200 @@ -0,0 +1,173 @@ +# +# Copyright (c) 2007-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 test DumpSWIRegistrytool +# + +use File::Basename; +my $scriptdir= dirname $0; +print "Changing dir to $scriptdir\n"; +chdir $scriptdir; + +$logFile = "\\epoc32\\winscw\\c\\dumpregistry_test.txt"; +unlink("$logFile"); +use File::Copy; + +# +#Function to write log into file +# +sub WriteLog { + my ($log) = @_; + unless( open($fh, ">> $logFile")) + { + rintf STDERR "Can\'t open $logfile:$!\n"; + return; + } + printf $fh $log; + printf $log; + close $fh; +} + + +sub registryTest { + my ($pkgfile) = @_[0]; + my ($expectedResult) = @_[1]; + my ($pkgname) = @_[2]; + my ($vendorname) = @_[3]; + $registryPath = ".\\data"; + $registryOutputPath = ".\\dumpregistry-output\\"; + $pkgfile =~ s/\.dat//; + WriteLog( "Package test\n\n"); + @retval = system("DumpSWIRegistryTool.exe $registryPath -p $pkgfile > $pkgfile.log "); + $logMsg = sprintf "Expected code:%5d result Code:%5d\n", $expectedResult, $?; + WriteLog( $logMsg); + $NumberOfTests++; + if( $? == $expectedResult) + { + if(!($pkgfile eq 80000003)) + { + my $respkg=`diff "$registryOutputPath$pkgfile.out" "$pkgfile.log"`; + if(length($respkg) == 0) + { + $NumberOfPassed++; + WriteLog("Passed\n\n"); + } + else + { + $NumberOfFailed++; + WriteLog("Failed: Files $pkgfile.out and $pkgfile.log are not matched\n\n"); + } + unlink("$pkgfile.log"); + } + else + { + $NumberOfPassed++; + WriteLog("Passed\n\n"); + } + } + else + { + $NumberOfFailed++; + WriteLog("Failed\n\n"); + } + + WriteLog( "Registry test\n\n"); + @retval = system("DumpSWIRegistryTool.exe $registryPath -r $pkgfile \"$pkgname\" \"$vendorname\"> $pkgfile.log"); + $logMsg = sprintf "Expected code:%5d result Code:%5d\n", $expectedResult, $?; + WriteLog( $logMsg); + $NumberOfTests++; + + if( $? == $expectedResult) + { + if(!($pkgfile eq 80000003)) + { + my $resreg=`diff "$registryOutputPath$pkgfile.tmp" "$pkgfile.log"`; + if(length($resreg) == 0) + { + $NumberOfPassed++; + WriteLog("Passed\n\n"); + } + else + { + $NumberOfFailed++; + WriteLog("Failed: Files $pkgfile.tmp and $pkgfile.log are not matched\n\n"); + } + + } + else + { + $NumberOfPassed++; + WriteLog("Passed\n\n"); + } + unlink("$pkgfile.log"); + } + else + { + $NumberOfFailed++; + WriteLog("Failed\n\n"); + } + } + +WriteLog("DumpSWIRegistryTool test.\n\n"); + +# +# Counters for results +# +$NumberOfTests = 0; +$NUmberOfPassed = 0; +$NumberOfFailed = 0; + +# +# Array of contents of test pkgs and expected results +# +# file name, expected , expected log, Title +# result message +# ---------------------------------------------------------------------------------------------------- +@TestItems = ( ["1000000d", 0, , "Created", "Registry Test for SIS files having SIS Properties","Test capabilities2","Vendor"], + ["80000010", 0, , "Created", "Registry Test for SIS files having MIME Type","Test Mime-GE","Vendor"], + ["80212345", 0, , "Created", "Registry Test for SIS files having Embedded and Dependency","TestSA","Vendor"], + ["8100000b", 0, , "Created", "Registry Test for Big file(4MB)","BigNc","Vendor"], + ["811111f8", 0, , "Created", "Registry to check operators","testexpressions_operators","Unique Vendor Name"], + ["811111fb", 0, , "Created", "Registry to for sis file with else options (ConditionalEvaluation)","testexpressions_else","Unique Vendor Name"], + ["811111fc", 0, , "Created", "Registry to check sis file with else if options (ConditionalEvaluation)","testexpressions_elseif","Unique Vendor Name"], + ["81111107", 0, , "Created", "Registry Test for MultiLanguage","MultiLanguageOption-FR","Vendor"], + ["81115000", 0, , "Created", "Registry Test for executable in embedded","053177c_0","Unique Vendor Name"], + ["81115011", 0, , "Created", "Registry Test with no executable","053177c_0","Unique Vendor Name"], + ["81115013", 0, , "Created", "Registry Test with 2 Embedded SIS files executable","053177c_3","Unique Vendor Name"], + # ["81231235", 0, , "Created", "Registry Test for Partial Upgrade","TestAppInUse Suite","Unique Vendor Name"], + ["81231235", 0, , "Created", "Registry Test for Patch","testappinuse_patch","Unique Vendor Name"], + ["a0000206", 0, , "Created", "Registry Test for SIS files having multiple Data files","3 Data Files","Symbian"], + ["81000008", 0, , "Created", "Registry Test for File NULL","File Null - Remove a file created in another apps import directory","Symbian"], + # ["80000003",768, , "Created", "Registry Test for old registry format","Depend-EN","Vendor"], + ); + +# +# Do test for each elements of TestItems array +# +for my $Test ( @TestItems ) + { + $testid = sprintf "SEC-SWI-I- REGISTRY -000%d\n",$NumberOfTests+1; + WriteLog($testid); + $logMsg = sprintf "%s\n", $Test->[3]; + WriteLog($logMsg); + registryTest($Test->[0], $Test->[1],$Test->[4],$Test->[5]); + } + +# +# 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 );