--- a/cryptomgmtlibs/securitytestfw/test/autotesting/configchangebats.pl Tue Jul 21 01:04:32 2009 +0100
+++ b/cryptomgmtlibs/securitytestfw/test/autotesting/configchangebats.pl Thu Sep 10 14:01:51 2009 +0300
@@ -1,329 +1,334 @@
-#
-# Copyright (c) 2008-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:
-# This script is designed to provide a working ethernet setup
-# for EKA1 or EKA2. It works by running Netcards.exe
-# then taking the output from Netcards (ethernet.ini)
-# and appending the ethernet settings to epoc.ini for EKA2
-# or creating ethermac.dat and etherdriver.dat for EKA1
-# The script can
-# - create a working ethernet setup with "ethernet" config option
-# - restore previous setup with "restore" config option
-# Please note: The script assumes that target wins is running on EKA1
-# Copied from configchange.pl to make use of environment varible for mac address
-# Copied from configchangebats.pl to adapt for multiple network cards in "Blade" type servers.
-#
-
-use Getopt::Long;
-use Cwd;
-
-use Getopt::Long;
-use Cwd;
-
-my $config="default";
-my $target="default";
-my $kernel="default";
-my $showhelp='0';
-
-my $etherNif;
-my $etherMac = $ENV{'WINSCW_MAC'};
-my $etherSpeed;
-
-# this variable is passed as an argument to netcards.exe
-# specifies which interface to use in case of multiple interfaces
-
-my $interface=0;
-
-$/ = "\n";
-
-GetOptions('config=s' => \$config, 'kernel=s' => \$kernel, 'target=s' => \$target, 'variant=s' => \$variant, 'help' => \$showhelp, 'interface:i' => \$interface);
-
-$config = lc( $config );
-$kernel = lc( $kernel );
-$target = lc( $target );
-$variant = lc( $variant );
-
-
-
-if( $showhelp || ( $kernel ne "eka1" && $kernel ne "eka2" ) ||
- ( $target ne "wins" && $target ne "winscw" ) ||
- ( $config ne "ethernetwithcommdb" && $config ne "restorecommdb" && $config ne "ethernetnocommdb" ) ||
- ( $variant ne "udeb" && $variant ne "urel" ) )
- {
- print "Command usage: configchange --config [ethernetWithCommDB|restoreCommDB|ethernetNoCommDB] --kernel [EKA1|EKA2] --target [wins|winscw] --variant [UDEB|UREL]\n";
- print "\t\t--config \tSelect required configuration\n";
- print "\t\t--kernel \tKernel variant\n";
- print "\t\t--target \tTarget emulator\n";
- print "\t\t--variant \tBuild type\n";
- print "\t\t--interface \tInterface Number\n";
- print "\t\t--help \tThis text\n";
- exit 0;
- }
-
-my $epocroot = &getEpocroot;
-my $drive = &getDrive;
-
-if($ENV{'SERVER_TYPE'} && $ENV{'SERVER_TYPE'} =~ /blade/i){
- $interface=1;
-}
-
-
-my $netIF = "";
-my $netConfigOutput = `net config rdr`;
-
-# Sample output:
-#J:\epoc32\winscw\c>net config rdr
-#Computer name \\SYWINPAP0005
-#Full Computer name SYWINPAP0005.prod.ad.symbian.intra
-#User name extkesavanathimoolam
-#
-#Workstation active on
-# NetbiosSmb (000000000000)
-# NetBT_Tcpip_{0B887A6F-A34C-4A43-85A4-FA5D58BEEE8A} (00215E2CB2F6)
-
-
-# capture the network-interface info to compare it later with netcards output
-if($netConfigOutput =~ /NetBT_Tcpip_\{(.*)?\}/i){
- $netIF = $1;
-}
-
-
-# netcards output sample
-#J:\epoc32\winscw\c>\epoc32\tools\netcards.exe 1
-#Adapters installed:
-#N/A - \Device\NPF_GenericDialupAdapter
-# Adapter for generic dialup and VPN capture
-#
-# 1 - \Device\NPF_{0B887A6F-A34C-4A43-85A4-FA5D58BEEE8A}
-# Broadcom Advanced Server Program Driver for Windows Server 2003 with SNP
-#
-#
-# 2 - \Device\NPF_{11F02767-7BDE-49FF-87F2-FD7F46FA8C60}
-# Broadcom L2 NDIS client driver
-#
-# 3 - \Device\NPF_{9672396E-2361-42BF-80CF-1E03AF7BD59F}
-# Broadcom L2 NDIS client driver
-#
-#Using adapter 1
-#Physical address read: 00:21:5e:2c:b2:f6
-#Writing settings to ethernet.ini.
-
-
-$netCardsCommand = "$drive\\$epocroot\\epoc32\\tools\\netcards $interface";
-foreach (split("\n",`$netCardsCommand`)){
- if(/\s*(\d)\s+\-\s+.*?$netIF/){
- $interface = $1;
- last;
- }
-}
-
-
-
-
-if( $config ne "restorecommdb" )
- {
- # must be creating some ethernet setup
- if( $config eq "ethernetwithcommdb" )
- {
- # write an appropriate commDB setup
- print( "Setting up CommDB for ethernet\n" );
- system( "$drive\\$epocroot\\epoc32\\release\\$target\\$variant\\ceddump" ) == 0
- or die "Error running ceddump!\n";
- system( "move $drive\\$epocroot\\epoc32\\$target\\c\\cedout.cfg $drive\\$epocroot\\epoc32\\$target\\c\\nonethernetced.cfg" ) == 0
- or die "Failed to rename cedout.cfg!\n";
- system( "$drive\\$epocroot\\epoc32\\release\\$target\\$variant\\ced -dtextshell -- -i c:\\EthernetCed.xml") == 0
- or die "Error running ced!\n";
- }
- print( "Running Netcards to obtain adapter info\n" );
- system( "$drive\\$epocroot\\epoc32\\tools\\netcards $interface" ) == 0
- or die "Error running netcards!\n";
-
- open ( INFILE, "ethernet.ini" ) or die "Can't find netcards output file, ethernet.ini!\n"; # get from current directory where netcards wrote it to
-
- if ($kernel eq "eka1")
- {
- open ( ETHERDRV, ">$drive\\$epocroot\\epoc32\\$target\\c\\system\\data\\etherdriver.dat" ) or die "Can't open $drive\\$epocroot\\epoc32\\$target\\c\\system\\data\\etherdriver.dat!\n";
- }
-
- while( <INFILE> )
- {
- chomp;
- my $sLine = $_;
-
- if( $sLine =~ /ETHER_NIF=(.*)/i )
- {
- #print "Matched ETHER_NIF\n";
- if ($kernel eq "eka1")
- {
- print ETHERDRV "$1";
- }
- else
- {
- $etherNif = $1;
- }
- }
- elsif( $sLine =~ /ETHER_SPEED=(.*)/i )
- {
- #print "Matched ETHER_SPEED\n";
- if ($kernel eq "eka2")
- {
- $etherSpeed = $1;
- }
- }
- #print "line: $sLine\n";
- }
- if ($kernel eq "eka1")
- {
- close( ETHERDRV );
- }
- else
- {
- # do the insertion to epoc.ini
- &generateEpocIni;
- }
- close( INFILE );
- }
-else
- {
- if( -f "$drive\\$epocroot\\epoc32\\$target\\c\\nonethernetced.cfg" )
- {
- system( "$drive\\$epocroot\\epoc32\\release\\$target\\$variant\\ced -i c:\\nonethernetced.cfg" ) == 0
- or die "Can't find backup ced file!\n";
- system( "move $drive\\$epocroot\\epoc32\\$target\\c\\nonethernetced.cfg $drive\\$epocroot\\epoc32\\$target\\c\\cedout.cfg" ) == 0
- or die "Can't rename backup ced file!\n";
- }
- else
- {
- print "No restore file found!\n";
- }
- }
-
-
-
-
-#
-# Determines, validates, and returns EPOCROOT.
-#
-sub getEpocroot
-{
- my $epocroot = $ENV{EPOCROOT};
- die "ERROR: Must set the EPOCROOT environment variable.\n"
- if (!defined($epocroot));
- $epocroot =~ s-/-\\-go; # for those working with UNIX shells
- die "ERROR: EPOCROOT must be an absolute path, " .
- "not containing a drive letter.\n" if ($epocroot !~ /^\\/);
- die "ERROR: EPOCROOT must not be a UNC path.\n" if ($epocroot =~ /^\\\\/);
- die "ERROR: EPOCROOT must end with a backslash.\n" if ($epocroot !~ /\\$/);
- die "ERROR: EPOCROOT must specify an existing directory.\n"
- if (!-d $epocroot);
- return $epocroot;
-}
-
-#
-# Determines and returns the current drive, if any.
-#
-sub getDrive
-{
- my $wd = cwd;
- my $drive;
- if($wd =~ /^([a-zA-Z]:)/) {
- $drive = $1;
- } else {
- # Perhaps we're on a machine that has no drives.
- $drive = "";
- }
- return $drive;
-}
-
-#
-#
-#
-sub generateEpocIni
-{
- my @outLines;
- my $length = 0;
- my $needToAppend = TRUE;
- my $epocIniAlreadyExists = FALSE;
- my $finished = FALSE;
- print "generating epoc ini\n";
- if ( -e "$drive\\$epocroot\\epoc32\\data\\epoc.ini" )
- {
- $epocIniAlreadyExists = TRUE;
- open( EPOCINI, "+<$drive\\$epocroot\\epoc32\\data\\epoc.ini" );
- seek( EPOCINI, 0, 0 );
- while( <EPOCINI> )
- {
- chomp;
- my $sLine = $_;
- if( $sLine =~ /ETHER_NIF=(.*)/i )
- {
- #print "matched etherNIF\n";
- $length = length( $etherNif );
-
- substr( $sLine, (index( $sLine, "=" )+1), $length ) = $etherNif;
- $needToAppend = FALSE;
- }
- elsif( $sLine =~ /ETHER_MAC=(.*)/i )
- {
- print "Matched ETHER_MAC\n";
- $length = length( $etherMac );
- substr( $sLine, (index( $sLine, "=" )+1), $length ) = $etherMac;
- $needToAppend = FALSE;
- }
- elsif( $sLine =~ /ETHER_SPEED=(.*)/i )
- {
- #print "Matched etherSpeed\n";
- $length = length( $etherSpeed );
- substr( $sLine, (index( $sLine, "=" )+1), $length ) = $etherSpeed;
- $needToAppend = FALSE;
- }
- push( @outLines, $sLine );
- push( @outLines, "\n" );
- }
- if ( $needToAppend eq FALSE )
- {
- print "Writing new settings into epoc.ini\n";
- # we have read the entire file and replaced what we need to
- # now lets write it back to the file
- seek( EPOCINI, 0, 0 );
- print EPOCINI @outLines;
- $finished = TRUE;
- }
- close ( EPOCINI );
- }
-
- if ( $finished eq FALSE )
- {
- if ( ($needToAppend eq TRUE) && ($epocIniAlreadyExists eq TRUE) )
- {
- print "Appending settings to current epoc.ini\n";
- # we must append all the settings onto the end of the current epoc.ini
- open( EPOCINI, ">>$drive\\$epocroot\\epoc32\\data\\epoc.ini" ) or die "Can't open epoc.ini!\n";
- }
- elsif ( $epocIniAlreadyExists eq FALSE )
- {
- print "Creating new epoc.ini\n";
- # create new file
- open( EPOCINI, ">$drive\\$epocroot\\epoc32\\data\\epoc.ini" );
- }
-
- print EPOCINI "\nETHER_NIF=";
- print EPOCINI "$etherNif\n";
- print EPOCINI "ETHER_MAC=";
- print EPOCINI "$etherMac\n";
- print EPOCINI "ETHER_SPEED=";
- print EPOCINI "$etherSpeed\n";
- close ( EPOCINI );
- }
-}
+#
+# Copyright (c) 2008-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:
+# This script is designed to provide a working ethernet setup
+# for EKA1 or EKA2. It works by running Netcards.exe
+# then taking the output from Netcards (ethernet.ini)
+# and appending the ethernet settings to epoc.ini for EKA2
+# or creating ethermac.dat and etherdriver.dat for EKA1
+# The script can
+# - create a working ethernet setup with "ethernet" config option
+# - restore previous setup with "restore" config option
+# Please note: The script assumes that target wins is running on EKA1
+# Copied from configchange.pl to make use of environment varible for mac address
+# Copied from configchangebats.pl to adapt for multiple network cards in "Blade" type servers.
+#
+
+use Getopt::Long;
+use Cwd;
+
+use Getopt::Long;
+use Cwd;
+
+my $config="default";
+my $target="default";
+my $kernel="default";
+my $showhelp='0';
+
+my $etherNif;
+my $etherMac = $ENV{'WINSCW_MAC'};
+my $etherSpeed;
+
+# this variable is passed as an argument to netcards.exe
+# specifies which interface to use in case of multiple interfaces
+
+my $interface=0;
+
+$/ = "\n";
+
+GetOptions('config=s' => \$config, 'kernel=s' => \$kernel, 'target=s' => \$target, 'variant=s' => \$variant, 'help' => \$showhelp, 'interface:i' => \$interface);
+
+$config = lc( $config );
+$kernel = lc( $kernel );
+$target = lc( $target );
+$variant = lc( $variant );
+
+
+
+if( $showhelp || ( $kernel ne "eka1" && $kernel ne "eka2" ) ||
+ ( $target ne "wins" && $target ne "winscw" ) ||
+ ( $config ne "ethernetwithcommdb" && $config ne "restorecommdb" && $config ne "ethernetnocommdb" ) ||
+ ( $variant ne "udeb" && $variant ne "urel" ) )
+ {
+ print "Command usage: configchange --config [ethernetWithCommDB|restoreCommDB|ethernetNoCommDB] --kernel [EKA1|EKA2] --target [wins|winscw] --variant [UDEB|UREL]\n";
+ print "\t\t--config \tSelect required configuration\n";
+ print "\t\t--kernel \tKernel variant\n";
+ print "\t\t--target \tTarget emulator\n";
+ print "\t\t--variant \tBuild type\n";
+ print "\t\t--interface \tInterface Number\n";
+ print "\t\t--help \tThis text\n";
+ exit 0;
+ }
+
+my $epocroot = &getEpocroot;
+my $drive = &getDrive;
+
+if($ENV{'SERVER_TYPE'} && $ENV{'SERVER_TYPE'} =~ /blade/i){
+ $interface=1;
+}
+
+
+my $netIF = "";
+my $netConfigOutput = `net config rdr`;
+
+# Sample output:
+#J:\epoc32\winscw\c>net config rdr
+#Computer name \\SYWINPAP0005
+#Full Computer name SYWINPAP0005.prod.ad.symbian.intra
+#User name extkesavanathimoolam
+#
+#Workstation active on
+# NetbiosSmb (000000000000)
+# NetBT_Tcpip_{0B887A6F-A34C-4A43-85A4-FA5D58BEEE8A} (00215E2CB2F6)
+
+
+# capture the network-interface info to compare it later with netcards output
+if($netConfigOutput =~ /NetBT_Tcpip_\{(.*)?\}/i){
+ $netIF = $1;
+}
+
+
+# netcards output sample
+#J:\epoc32\winscw\c>\epoc32\tools\netcards.exe 1
+#Adapters installed:
+#N/A - \Device\NPF_GenericDialupAdapter
+# Adapter for generic dialup and VPN capture
+#
+# 1 - \Device\NPF_{0B887A6F-A34C-4A43-85A4-FA5D58BEEE8A}
+# Broadcom Advanced Server Program Driver for Windows Server 2003 with SNP
+#
+#
+# 2 - \Device\NPF_{11F02767-7BDE-49FF-87F2-FD7F46FA8C60}
+# Broadcom L2 NDIS client driver
+#
+# 3 - \Device\NPF_{9672396E-2361-42BF-80CF-1E03AF7BD59F}
+# Broadcom L2 NDIS client driver
+#
+#Using adapter 1
+#Physical address read: 00:21:5e:2c:b2:f6
+#Writing settings to ethernet.ini.
+
+
+$netCardsCommand = "$drive\\$epocroot\\epoc32\\tools\\netcards $interface";
+foreach (split("\n",`$netCardsCommand`)){
+ if(/\s*(\d)\s+\-\s+.*?$netIF/){
+ $interface = $1;
+ last;
+ }
+}
+
+
+
+
+if( $config ne "restorecommdb" )
+ {
+ # must be creating some ethernet setup
+ if( $config eq "ethernetwithcommdb" )
+ {
+ # write an appropriate commDB setup
+ print( "Setting up CommDB for ethernet\n" );
+ system( "$drive\\$epocroot\\epoc32\\release\\$target\\$variant\\ceddump" ) == 0
+ or die "Error running ceddump!\n";
+ system( "move $drive\\$epocroot\\epoc32\\$target\\c\\cedout.cfg $drive\\$epocroot\\epoc32\\$target\\c\\nonethernetced.cfg" ) == 0
+ or die "Failed to rename cedout.cfg!\n";
+ system( "$drive\\$epocroot\\epoc32\\release\\$target\\$variant\\ced -dtextshell -- -i c:\\EthernetCed.xml") == 0
+ or die "Error running ced!\n";
+ }
+ print( "Running Netcards to obtain adapter info\n" );
+ system( "$drive\\$epocroot\\epoc32\\tools\\netcards $interface" ) == 0
+ or die "Error running netcards!\n";
+
+ open ( INFILE, "ethernet.ini" ) or die "Can't find netcards output file, ethernet.ini!\n"; # get from current directory where netcards wrote it to
+
+ if ($kernel eq "eka1")
+ {
+ open ( ETHERDRV, ">$drive\\$epocroot\\epoc32\\$target\\c\\system\\data\\etherdriver.dat" ) or die "Can't open $drive\\$epocroot\\epoc32\\$target\\c\\system\\data\\etherdriver.dat!\n";
+ }
+
+ while( <INFILE> )
+ {
+ chomp;
+ my $sLine = $_;
+
+ if( $sLine =~ /ETHER_NIF=(.*)/i )
+ {
+ #print "Matched ETHER_NIF\n";
+ if ($kernel eq "eka1")
+ {
+ print ETHERDRV "$1";
+ }
+ else
+ {
+ $etherNif = $1;
+ }
+ }
+ elsif( $sLine =~ /ETHER_SPEED=(.*)/i )
+ {
+ #print "Matched ETHER_SPEED\n";
+ if ($kernel eq "eka2")
+ {
+ $etherSpeed = $1;
+ }
+ }
+ #print "line: $sLine\n";
+ }
+ if ($kernel eq "eka1")
+ {
+ close( ETHERDRV );
+ }
+ else
+ {
+ # do the insertion to epoc.ini
+ &generateEpocIni;
+ }
+ close( INFILE );
+ }
+else
+ {
+ if( -f "$drive\\$epocroot\\epoc32\\$target\\c\\nonethernetced.cfg" )
+ {
+ system( "$drive\\$epocroot\\epoc32\\release\\$target\\$variant\\ced -i c:\\nonethernetced.cfg" ) == 0
+ or die "Can't find backup ced file!\n";
+ system( "move $drive\\$epocroot\\epoc32\\$target\\c\\nonethernetced.cfg $drive\\$epocroot\\epoc32\\$target\\c\\cedout.cfg" ) == 0
+ or die "Can't rename backup ced file!\n";
+ }
+ else
+ {
+ print "No restore file found!\n";
+ }
+ }
+
+
+
+
+#
+# Determines, validates, and returns EPOCROOT.
+#
+sub getEpocroot
+{
+ my $epocroot = $ENV{EPOCROOT};
+ die "ERROR: Must set the EPOCROOT environment variable.\n"
+ if (!defined($epocroot));
+ $epocroot =~ s-/-\\-go; # for those working with UNIX shells
+ die "ERROR: EPOCROOT must be an absolute path, " .
+ "not containing a drive letter.\n" if ($epocroot !~ /^\\/);
+ die "ERROR: EPOCROOT must not be a UNC path.\n" if ($epocroot =~ /^\\\\/);
+ die "ERROR: EPOCROOT must end with a backslash.\n" if ($epocroot !~ /\\$/);
+ die "ERROR: EPOCROOT must specify an existing directory.\n"
+ if (!-d $epocroot);
+ return $epocroot;
+}
+
+#
+# Determines and returns the current drive, if any.
+#
+sub getDrive
+{
+ my $wd = cwd;
+ my $drive;
+ if($wd =~ /^([a-zA-Z]:)/) {
+ $drive = $1;
+ } else {
+ # Perhaps we're on a machine that has no drives.
+ $drive = "";
+ }
+ return $drive;
+}
+
+#
+#
+#
+sub generateEpocIni
+{
+ my @outLines;
+ my $length = 0;
+ my $needToAppend = TRUE;
+ my $epocIniAlreadyExists = FALSE;
+ my $finished = FALSE;
+ print "generating epoc ini\n";
+ if ( -e "$drive\\$epocroot\\epoc32\\data\\epoc.ini" )
+ {
+ $epocIniAlreadyExists = TRUE;
+ open( EPOCINI, "+<$drive\\$epocroot\\epoc32\\data\\epoc.ini" );
+ seek( EPOCINI, 0, 0 );
+ while( <EPOCINI> )
+ {
+ chomp;
+ my $sLine = $_;
+ if( $sLine =~ /ETHER_NIF=(.*)/i )
+ {
+ #print "matched etherNIF\n";
+ $length = length( $etherNif );
+
+ substr( $sLine, (index( $sLine, "=" )+1), $length ) = $etherNif;
+ $needToAppend = FALSE;
+ }
+ elsif( $sLine =~ /ETHER_MAC=(.*)/i )
+ {
+ print "Matched ETHER_MAC\n";
+ $length = length( $etherMac );
+ substr( $sLine, (index( $sLine, "=" )+1), $length ) = $etherMac;
+ $needToAppend = FALSE;
+ }
+ elsif( $sLine =~ /ETHER_SPEED=(.*)/i )
+ {
+ #print "Matched etherSpeed\n";
+ $length = length( $etherSpeed );
+ substr( $sLine, (index( $sLine, "=" )+1), $length ) = $etherSpeed;
+ $needToAppend = FALSE;
+ }
+ push( @outLines, $sLine );
+ push( @outLines, "\n" );
+ }
+ if ( $needToAppend eq FALSE )
+ {
+ print "Writing new settings into epoc.ini\n";
+ # we have read the entire file and replaced what we need to
+ # now lets write it back to the file
+ seek( EPOCINI, 0, 0 );
+ print EPOCINI @outLines;
+ $finished = TRUE;
+ }
+ close ( EPOCINI );
+ }
+
+ if ( $finished eq FALSE )
+ {
+ if ( ($needToAppend eq TRUE) && ($epocIniAlreadyExists eq TRUE) )
+ {
+ print "Appending settings to current epoc.ini\n";
+ # we must append all the settings onto the end of the current epoc.ini
+ open( EPOCINI, ">>$drive\\$epocroot\\epoc32\\data\\epoc.ini" ) or die "Can't open epoc.ini!\n";
+ }
+ elsif ( $epocIniAlreadyExists eq FALSE )
+ {
+ print "Creating new epoc.ini\n";
+ # create new file
+ open( EPOCINI, ">$drive\\$epocroot\\epoc32\\data\\epoc.ini" );
+ }
+
+ print EPOCINI "\nETHER_NIF=";
+ print EPOCINI "$etherNif\n";
+ print EPOCINI "ETHER_MAC=";
+ print EPOCINI "$etherMac\n";
+ print EPOCINI "ETHER_SPEED=";
+ print EPOCINI "$etherSpeed\n";
+ close ( EPOCINI );
+ }
+}
+
+
+
+
+