diff -r 000000000000 -r ba25891c3a9e secureswitools/swisistools/test/tinterpretsisinteg/runtest.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/test/tinterpretsisinteg/runtest.pl Thu Dec 17 08:51:10 2009 +0200 @@ -0,0 +1,212 @@ +# +# Copyright (c) 2004-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: +# runtest.pl is used to runtests defined in an xml file. +# + +use strict; + +use FindBin; +use lib "$FindBin::Bin"; +use testcontroller; +use testlistreader; +use Cwd; +use defaulttestroutine; +use File::Copy; + +#processing of command line arguments +sub processArgs { + my ($controller, @args) = @_; + + + my $usage = <] [-o ] + -v verbose. Displays test title + -h this help text + -e Use enhanced test routine that checks result of setup and cleanup + One or more xml filenames containing test definitions + If no test list is defined it will try the default file + testlist.xml + -o Only run the tests defined in the specified list. This option + allows a subset of tests to be executed. This option must be + the last option and the tests referenced in this file must + already have been defined in previous files. + +EOF + + my $hasTestFile = 0; + my @normalFiles; + my $specialFile; + my $enhanced = 0; + while (@args) + { + my $arg = shift @args; + if (lc($arg) eq "-v") + { + $controller->setVerbose(); + } + elsif (lc($arg) eq "-o") + { + $arg = shift @args; + die "File '$arg' does not exist\n" if (! (-e $arg) ); + $specialFile = $arg; + last; + } + elsif (lc($arg) eq "-e") + { + $enhanced = 1; + } + elsif (lc($arg) eq "-h") + { + die $usage; + } + elsif (lc($arg) eq "-d") + { + $controller->{'debug'} = 1; + } + else + { + die "File '$arg' does not exist\n" if (! (-e $arg) ); + push @normalFiles, $arg; + $hasTestFile = 1; + } + } + + return ($specialFile, $enhanced,$hasTestFile); +} + +my %testEntry; +my $controller = 0; +my $parser = 0; + +my $special = 0; +my $enhanced = 0; +my $hasTestFile = 0; +my @file; + +sub StartTest +{ +use XML::DOM; + +$parser->parseFiles($special, @file); +if ($enhanced) +{ + $controller->setTestRoutine(\&enhancedTestRoutine); +} +else +{ + $controller->setTestRoutine(\&defaultTestRoutine); +} + +$controller->runTests(); +use Cwd; +my $dir = cwd; +my $xml = "xml"; +my $domDir = $dir."/".$xml; +chdir $domDir; +my $dom = "dom.pm"; +unlink $dom; + +} + +my $epocRoot = $ENV{'EPOCROOT'}; +my $ScrMain = $epocRoot."epoc32\\release\\winscw\\udeb\\z\\sys\\install\\scr\\provisioned\\scr.db"; +my $ScrBackup = $epocRoot."epoc32\\winscw\\c\\tswi\\tinterpretsisinteg\\backupscr.db"; + +sub backupScr() + { + + copy($ScrMain, $ScrBackup); + } + +sub restoreScr() + { + copy($ScrBackup, $ScrMain); + } + +# -------------- Start of script -------------- + +my $runType = shift; + +if($runType eq "native" || $runType eq "usifnative") +{ +%testEntry; +my $logIntFile = "\\epoc32\\winscw\\c\\interpretsis_test_harness.txt"; +$controller = testcontroller->new($logIntFile, $runType); + +$parser = testlistreader->new($controller,$runType); +($special, $enhanced, $hasTestFile) = processArgs($controller, @ARGV); + +my $nativeXmlFile="\\epoc32\\winscw\\c\\tswi\\tinterpretsisinteg\\testlist.xml"; # default filename +if ($hasTestFile == 0) + { + # use default test list filename + die "File '$nativeXmlFile' does not exist\n" if (! (-e $nativeXmlFile) ); + } +push(@file,$nativeXmlFile); + + + +# Delete the log file +unlink("$logIntFile"); + +StartTest(); +@file = (); +} + +elsif( $runType eq "usif") +{ + my $regfilepath =0; + my @nativeregfiles = ("sisregistry_5.2.txt","sisregistry_5.3.txt","sisregistry_5.1.txt"); + my $regfile = 0; + %testEntry; + my $logDbFile = "\\epoc32\\winscw\\c\\interpretsis_test_harness_db.txt"; + + backupScr(); + $controller = testcontroller->new($logDbFile, $runType); + + + $regfilepath = "\\epoc32\\release\\winscw\\udeb\\z\\system\\data\\"; + # delete the registry file if present + + foreach $regfile (@nativeregfiles) + { + $regfile = $regfilepath.$regfile; + unlink($regfile); + } + $parser = testlistreader->new($controller,$runType); + + ($special, $enhanced, $hasTestFile) = processArgs($controller, @ARGV); + my $dbXmlfile="\\epoc32\\winscw\\c\\tswi\\tinterpretsisinteg\\testlistdb.xml"; # default filename + if ($hasTestFile == 0) + { + # use default test list filename + die "File '$dbXmlfile' does not exist\n" if (! (-e $dbXmlfile) ); + } + push(@file,$dbXmlfile); + + # Delete the log file + unlink("$logDbFile"); + + StartTest(); + + restoreScr(); + +} + +else + { + print "Please specify the type of installation to be performed (native or usif)."; + } +