Update contrib.
2 # Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
4 # This component and the accompanying materials are made available
5 # under the terms of the License "Eclipse Public License v1.0"
6 # which accompanies this distribution, and is available
7 # at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 # Initial Contributors:
10 # Nokia Corporation - initial contribution.
19 ##################################################################################
20 # These variables can be customised as required
21 # define some global variables - customise as required
27 # set variables which can be set from the environment. If no environment
28 # equivalent is found, it will set to the default
29 SetVariable(\$REPORTDIR, "REPORTDIR", "L:\\AutoSecTests");
30 SetVariable(\$MAINLINEZIPDIR, "MAINLINEZIPDIR", "\\\\builds01\\Master");
31 SetVariable(\$RELSUBSYSROOT, "RELSUBSYSROOT", "security");
33 # To include Techview in build set environment variable:
34 # TECHVIEWROOT=Techview
35 SetVariable(\$TECHVIEWROOT, "TECHVIEWROOT", "");
37 # host platforms define which platforms are to be built and tests to run. Target
38 # platforms are those where roms are build
39 my @HOSTPLATFORMS = ("wins", "winscw");
40 my @TARGETPLATFORMS = ("arm4", "thumb");
41 my @ROMPLATFORMS = ("lubbock", "assabet");
42 my @BUILDTYPES = ("udeb", "urel");
44 # END of customisable variables
45 ####################################################################################
47 my $P4CLIENTNAME = ConfigureDefaultClient();
54 my @DATEARRAY = split(/[ \/]/, `date /t`);
56 # command line arguments
59 # Parse command line parameters
62 # now, DATEARRAY[0] will be day, 1 will be date of month, 2 will be month, 3 is year
63 my $RESULTDIR = "$REPORTDIR\\$DATEARRAY[3]$DATEARRAY[2]$DATEARRAY[1]";
65 # define the file where the config.txt file is post-processed
66 my $POSTPROCESSED = "$RESULTDIR\\postprocessed.txt";
68 # create a new directory for today
69 system("mkdir \"$RESULTDIR\"");
71 # create a logfile and error file
72 open (LOGFILE, "> $RESULTDIR\\log.txt") || die "error opening for writing";
73 open (ERRFILE, "> $RESULTDIR\\error.txt") || die "error opening for writing";
75 # Derive rootdrive from perforce client. Set up variables
76 # which required the root drive to be configured. Note that
77 # the test config file is only overwritten if not configured by
78 # the command line. By default it looks for config.txt in the current
86 $TESTCONFIGFILE = "$dir\\config.txt";
90 $SUBSYSTEMROOT = "$ROOTDRIVE\\$RELSUBSYSROOT";
95 $TECHVIEWROOT = "$ROOTDRIVE\\$TECHVIEWROOT";
99 my $EPOCROOT = "$ROOTDRIVE\\epoc32";
101 # add techview to build if requested
105 @BUILDDIRS = ( $SUBSYSTEMROOT, "$TECHVIEWROOT\\toolkit\\startup\\group", "$TECHVIEWROOT\\apps\\appinstui\\group", "$TECHVIEWROOT\\apps\\secui\\group");
109 @BUILDDIRS = ( $SUBSYSTEMROOT );
112 print "BUILDIRS = @BUILDDIRS\n";
120 print "REPORTDIR = $REPORTDIR\n";
121 print "MAINLINEZIPDIR = $MAINLINEZIPDIR\n";
122 print "SUBSYSTEMROOT = $SUBSYSTEMROOT\n";
123 print "TESTCONFIGFILE = $TESTCONFIGFILE\n";
124 print "TECHVIEWROOT = $TECHVIEWROOT\n";
125 print "BUILDPLATFORM = $BUILDPLATFORM\n";
127 # Figure out the second-latest release if none had been specified on the
128 # command line - we do not want the latest in case it has not yet been released.
130 my $platformsuffix = "";
133 $platformsuffix = "_$BUILDPLATFORM";
136 if (!$ARGS{"mainline"})
138 my $filelist = `dir $MAINLINEZIPDIR\\0????$platformsuffix /ad /b | sort /r`;
139 my @filearray = split "\n", $filelist;
140 $releasedir = $filearray[1];
144 $releasedir = "$ARGS{\"mainline\"}$platformsuffix";
147 # Display what's to be done
148 ReportToFiles("------ Script run on $DATEARRAY[1]/$DATEARRAY[2]/$DATEARRAY[3] with the following options\n");
149 ReportToFiles("------ Report directory: $REPORTDIR\n");
150 ReportToFiles("------ Subsystem root: $SUBSYSTEMROOT\n");
151 ReportToFiles("------ Test config file: $TESTCONFIGFILE\n");
152 ReportToFiles("------ Built against MCL platform: $BUILDPLATFORM\n");
153 if ($ARGS{s}) { ReportToFiles("------ Perforce synchronisation using client spec \"$P4CLIENTNAME\" on drive \"$ROOTDRIVE\"\n"); }
154 if ($ARGS{u}) { ReportToFiles("------ Mainline unzip using build $releasedir\n"); }
155 if ($ARGS{b}) { ReportToFiles("------ Build of production and test code\n"); }
156 if ($ARGS{t}) { ReportToFiles("------ Running of test code on the host using $TESTCONFIGFILE\n"); }
157 if ($ARGS{f}) { ReportToFiles("------ Build rom first\n"); }
158 if ($ARGS{t}) { ReportToFiles("------ Running of test code on the host using $TESTCONFIGFILE\n"); }
162 ReportToFiles("------ Building of target roms: ");
163 map { ReportToFiles("$_ "); } @ROMPLATFORMS;
166 ReportToFiles("------ Host builds used: ");
167 map { ReportToFiles("$_ "); } @HOSTPLATFORMS;
168 ReportToFiles("\n------ Target processor builds used: ");
169 map { ReportToFiles("$_ "); } @TARGETPLATFORMS;
170 ReportToFiles("\n------ Build types used: ");
171 map { ReportToFiles("$_ "); } @BUILDTYPES;
172 ReportToFiles("\n\n");
180 # Now unzip the mainline
183 DoMainlineUnzip($releasedir);
186 # Build the post-processed config file if the test flag is on
189 ParseTestConfigFile();
195 foreach my $bt (@BUILDTYPES)
204 # Now build the target platforms - no testing required
207 foreach my $platform (@TARGETPLATFORMS)
209 foreach my $bt (@BUILDTYPES)
211 # Must build dummy midp2installerclient for cedar
212 if ( $BUILDPLATFORM eq "cedar" )
214 my @tempbuilddirs = @BUILDDIRS;
215 @BUILDDIRS = ("$SUBSYSTEMROOT\\appinst\\tsrc");
216 print "Building dummy midp2installerclient....on $platform/$bt\n";
217 DoBuild($platform, $bt);
219 @BUILDDIRS = @tempbuilddirs;
221 DoBuild($platform, $bt);
225 # Now build the roms if required
232 # Build and test host platforms. They get built and then tested in order.
233 # This is required as the EPOC C drive is shared between udeb and urel.
234 # If the build/test is run together as a set, then the state of the C
235 # drive will be restored
236 foreach my $platform (@HOSTPLATFORMS)
238 foreach my $bt (@BUILDTYPES)
242 DoBuild($platform, $bt);
246 DoRunTests($platform, $bt);
251 # Now build the target platforms (unless this has been done in advance) - no testing required
256 foreach my $platform (@TARGETPLATFORMS)
258 foreach my $bt (@BUILDTYPES)
260 # Must build dummy midp2installerclient for cedar
261 if ( $BUILDPLATFORM eq "cedar" )
263 my @tempbuilddirs = @BUILDDIRS;
264 @BUILDDIRS = ("$SUBSYSTEMROOT\\appinst\\tsrc");
265 print "Building dummy midp2installerclient....on $platform/$bt\n";
266 DoBuild($platform, $bt);
268 @BUILDDIRS = @tempbuilddirs;
270 DoBuild($platform, $bt);
274 # Now build the roms if required
281 my $timeoutput = `time /t`;
282 ReportToFiles("\n------------------- Job finished at $timeoutput\n\n");
285 sub ConfigureDefaultClient
287 # this subroutine figures out what default perforce client to use
288 my $clientoutput = `p4 client -o`;
290 if ($clientoutput =~ /\nClient:\s*([^\s]*)/ )
298 # this subroutine derives the rootdrive from the perforce client
299 my $clientoutput = `p4 client -o`;
301 if ($clientoutput =~ /\nRoot:\s*(.):/ )
307 sub ProcessCommandLine
310 &GetOptions (\%ARGS, "a", "h", "s", "u", "b", "t", "r", "o", "f", "client=s", "configfile=s", "workdir=s", "mainline=s", "subsystemroot=s", "nohost", "notgt", "platform=s", @HOSTPLATFORMS, @TARGETPLATFORMS, @ROMPLATFORMS, @BUILDTYPES);
312 # if the -a option is specified, this means that sync, unzip, build, run
313 # tests, and rom options should be set
316 $ARGS{o} = $ARGS{s} = $ARGS{u} = $ARGS{b} = $ARGS{t} = $ARGS{r} = $ARGS{a};
319 # if the help option is specified, or none of the other arguments are specified,
320 # or both beech and cedar requested, then display the help
321 if ($ARGS{h} || (!$ARGS{s} && !$ARGS{u} && !$ARGS{b} && !$ARGS{t} && !$ARGS{r} && !$ARGS{o}))
323 print "Command line switches: \n";
324 print " -s Do perforce synchronisation\n";
325 print " -u Do unzipping from the mainline\n";
326 print " -b Build the appropriate targets\n";
327 print " -t Run the test suite\n";
328 print " -r Build the roms\n";
329 print " -o Build the tools\n";
330 print " -a Do all of the above\n";
331 print " -f Build rom First (before wins winscw)\n";
332 print " -h Display this screen\n";
333 print "\nOther options:\n";
334 print " --wins Use the wins platform for building and running of host tests\n";
335 print " --winscw Use the winscw platform for building and running of host tests\n";
336 print " --nohost Do not use any host platform\n";
337 print " --arm4 Use the arm4 processor for rom building\n";
338 print " --thumb Use the thumb processor for rom building\n";
339 print " --notgt Do not use any target platform\n";
340 print " --assabet Build roms for assabet platform\n";
341 print " --lubbock Build roms for lubbock platform\n";
342 print " --udeb Build udeb version only\n";
343 print " --urel Build urel version only\n";
344 print "\nParameters:\n";
345 print " --client=<client> Specifies the perforce client to use (default: $P4CLIENTNAME)\n";
346 print " --workdir=<dir> Specifies the working directory (default: $REPORTDIR)\n";
347 print " --subsystemroot=<dir> Specifies the root directory to build\n";
348 print " --configfile=<file> Specifies the test config file\n";
349 print " --mainline=<release number> Specifies the release number to use\n";
350 print " --platform=<platform name> Specifies MCL platform. Default is beech. Set to none for pre MCL builds\n";
351 print "\nExamples:\n";
352 print " perl -w RunTests.pl -b -t -r --wins --lubbock --thumb --platform=cedar --client=lon-julianl\n\n";
353 print " Uses drive m, client lon-julianl, build against cedar and builds and runs tests on the wins\n";
354 print " platform and builds roms for lubbock\n\n";
355 print " perl -w RunTests.pl -u -b --winscw --urel --notgt --mainline=01038\n\n";
356 print " Unzips mainline 01038_beech and builds only winscw/urel. Uses default client\n";
357 print " perl -w RunTests.pl -u -b --winscw --urel --notgt --platform=none --mainline=01038\n\n";
358 print " Unzips mainline 01038 and builds only winscw/urel. Uses default client\n";
362 # Now parse the client, drive, and working directory parameters
365 $P4CLIENTNAME = $ARGS{"client"};
366 $ENV{"P4CLIENT"} = $P4CLIENTNAME;
368 if ($ARGS{"configfile"})
370 $TESTCONFIGFILE = $ARGS{"configfile"};
372 if ($ARGS{"workdir"})
374 $REPORTDIR = $ARGS{"workdir"};
376 if ($ARGS{"subsystemroot"})
378 $SUBSYSTEMROOT = $ARGS{"subsystemroot"};
383 # now parse the host options
390 ParseArguments(\@HOSTPLATFORMS);
393 # now parse the target platforms
396 @TARGETPLATFORMS = ();
400 ParseArguments(\@TARGETPLATFORMS);
403 # now parse the rom platforms and the build types
404 ParseArguments(\@ROMPLATFORMS);
405 ParseArguments(\@BUILDTYPES);
407 if ($ARGS{"platform"})
409 $BUILDPLATFORM=$ARGS{"platform"};
410 if ($BUILDPLATFORM eq "none")
412 # set compatibity for pre MCL builds
419 $BUILDPLATFORM="beech";
425 # common parsing of arguments in an array - returns another array
426 # which have the options specified.
427 # If none specified, it returns ALL the options.
429 # eg. If -wins specified, and options = ("wins", "winscw"), then
430 # return array is just ("wins"). If neither wins or winscw specified,
435 foreach my $opt (@$options)
439 push(@retoptions, $opt);
443 # change if we have at least one option specified
444 if (scalar(@retoptions) > 0)
446 @$options = @retoptions;
450 # subroutine to do a perforce sync
453 print "Doing a Perforce synchronisation....\n";
454 ExecAndOutputToLog("p4 sync -f $SUBSYSTEMROOT\\...");
457 ExecAndOutputToLog("p4 sync -f $TECHVIEWROOT\\...");
461 # subroutine to do the unzipping
465 print "Doing an unzip of mainline $MAINLINEZIPDIR\\$dir...\n";
467 my @zipfiles = ("techview");
469 # firstly, delete anything already there
470 ExecAndOutputToLog("del \/F \/S \/Q $EPOCROOT");
472 # unzip all the zipfiles
473 map { ExecAndOutputToLog("t:\\tools\\unzip -o $MAINLINEZIPDIR\\$dir\\zips\\$_.zip -d $ROOTDRIVE\\"); } @zipfiles;
476 # subrountine to build or clean release or test build
477 # call RunAbld("<Directory>", "<Command>", "<Target>", "test" or "")
480 my ($dir, $cmd, $target, $test, $bldtype) = @_;
483 my $bldcommand = "abld $test $cmd -k $target $bldtype";
484 my $bldoutput = ExecAndOutputToLog($bldcommand);
488 # match "error:" or "error(s)" or fatal error
489 my @errout = grep(/(error(\(s\)|\:))|fatal error/i, split("\n", $bldoutput));
491 if (scalar(@errout) > 0)
493 print ERRFILE "-------- Errors found when running $bldcommand\n";
494 map { print ERRFILE "$_\n"; } @errout;
495 print ERRFILE "-------- End of errors for $bldcommand\n\n";
500 # builds the release and test code for a specified platform and mode
504 my ($platform, $bt) = @_;
506 RemoveWatchers($platform, $bt);
508 foreach my $bd (@BUILDDIRS)
512 system("bldmake bldfiles");
514 print "Building build targets.... $bd on $platform/$bt\n";
515 ReportToFiles("\n------------------- Now building $bd on $platform/$bt\n\n");
517 RunAbld($bd, "clean", $platform, "", $bt);
518 RunAbld($bd, "clean", $platform, "test", $bt);
519 RunAbld($bd, "build", $platform, "", $bt);
520 RunAbld($bd, "build", $platform, "test", $bt);
524 # builds the tools for deb or rel
539 foreach my $bd (@BUILDDIRS)
542 system("bldmake bldfiles");
544 print "Building tools.... $bd on $bt\n";
545 ReportToFiles("\n------------------- Now building $bd for tools on $bt\n\n");
547 RunAbld($bd, "clean", "tools", "", $bt);
548 RunAbld($bd, "build", "tools", "", $bt);
552 # this subroutine executes the given command and outputs to the log file
553 sub ExecAndOutputToLog
556 my $timeoutput = `time /t`;
557 my $cmdoutput = `$cmd 2>&1`;
559 # capture output to log file
560 print LOGFILE "-------- Output of $cmd run at $timeoutput";
563 print LOGFILE "$cmdoutput\n";
567 print LOGFILE "(NO OUTPUT)\n";
572 print ERRFILE "\n-------- Error code $? returned when executing:\n";
573 print ERRFILE "-------- \"$cmd\".\n";
577 print ERRFILE "-------- Output:\n";
578 print ERRFILE "$cmdoutput";
584 # this subroutine executes all the tests as specified in the configuration file.
585 # It will run the tests for the specified platform/built type
587 # The configuration file has the following valid commands:
589 # #include <filename> - includes another config file
590 # SYSTEMCMD <command and parameters> - executes a DOS command eg SYSTEMCMD copy a.txt b.txt
591 # DOTEST <testname> <scriptname> <logname> ... - executes a test
592 # COMP <filea> <fileb> - compares two files and logs result
594 # For SYSTEMCMD and COMP, the following variables get substituted
595 # - $C - the current EPOC C drive (eg o:\epoc32\wins\c)
596 # - $Z - the current EPOC Z drive (eg o:\epoc32\release\wins\udeb\z)
597 # - $RELEASE - the epoc release directory for this build (eg o:\epoc32\release\wins\udeb)
598 # - $EPOC - the epoc root (eg o:\epoc32)
599 # - $ROOT - the root drive (eg o:)
602 # platform and build type
604 print "Running tests on platform $p/$bt\n";
605 ReportToFiles("\n------------------- Now running tests on platform $p/$bt\n\n");
607 # set the default directory to be the subsystem root
608 chdir($SUBSYSTEMROOT);
610 # Make the results directory
611 my $testlogs = "$RESULTDIR\\testlogs";
612 system("mkdir $testlogs");
613 system("mkdir $testlogs\\$p");
614 system("mkdir $testlogs\\$p\\$bt");
616 # open the post processed file
617 open (POSTFILE, "< $POSTPROCESSED") || die "error opening $POSTPROCESSED for reading";
618 # open a separate report file for test results
619 open (TESTREPFILE, "> $RESULTDIR\\testresults.$p.$bt.txt") || die "error opening for writing";
621 my $timeoutput = `time /t`;
622 print TESTREPFILE "-------- Test log file when running on platform $p/$bt at $timeoutput";
624 my $cdrive = "$EPOCROOT\\$p\\c";
629 # check for a line with SYSTEMCMD <command>
630 if ( $line =~ /^SYSTEMCMD[ ]+(.*)/ )
632 # Substitute $C for the cdrive, $Z for the zdrive, and $RELEASE
633 # for the release path, etc
635 SubstitutePaths($p, $bt, \$cmd);
637 print " - executing system command: $cmd\n";
638 ExecAndOutputToLog($cmd);
640 elsif ( $line =~ /^\s*$/ )
642 # if we have an empty line then do nothing
644 elsif ( $line =~ /^DOTEST\s+([^\s]+)[\s]+([^\s]+)[\s]+([^\s]+)/ )
646 # if this pattern matches DOTEST <cmd> <scriptfile> <logfile>,
647 # then we execute this test - extra parameters can be supplied after the logfile
648 print " - running test: $1 $2 $3\n";
649 ExecAndOutputToLog("$EPOCROOT\\release\\$p\\$bt\\$1 $2 $3 $'");
651 # log files are assumed to be stored in \epoc32\wins\c
652 my $outfile = "$cdrive\\$3";
654 print TESTREPFILE "\n---- Result of test \"$1 $2 $3\"\n";
657 # also, copy the log file into the results dir
658 copy ($outfile, "$testlogs\\$p\\$bt\\$3");
660 # check to see if there is a failure
661 my $output = `type $outfile`;
662 if ($output =~ /(\d+) tests failed out of (\d+)/)
664 print TESTREPFILE " $1 tests failed out of $2\n";
667 # if there is a fail, then print it in the test log
668 print ERRFILE "-------- Logfile $outfile produced a failure result!\n";
669 print ERRFILE "$output\n";
670 print TESTREPFILE " There was a test FAILURE\n";
674 print TESTREPFILE " All tests SUCCEEDED\n";
679 # if it doesn't conform to standard format, then need to notify
680 print TESTREPFILE " WARNING: non-standard log file format - check log\n";
685 # if we get here, the output file didn't exist
686 print ERRFILE "-------- Logfile $outfile does not exist - did $1 fail to build?\n";
687 print TESTREPFILE " ERROR! Log file $outfile does not exist\n";
691 elsif ( $line =~ /^COMP\s+([^\s]+)[\s]+([^\s]+)/ )
697 # substitute variables
698 SubstitutePaths($p, $bt, \$file1);
699 SubstitutePaths($p, $bt, \$file2);
701 print " - doing comparison on $file1 and $file2\n";
702 print TESTREPFILE "\n---- Comparing $file1 and $file2\n";
703 my $output = ExecAndOutputToLog("diff -q $file1 $file2");
705 if ( $output =~ /differ/ )
707 print TESTREPFILE " Comparison FAILED\n";
711 print TESTREPFILE " Comparison SUCCESSFUL\n";
717 ReportToFiles("**** Error test config line: $line");
724 # - $C - the current EPOC C drive (eg o:\epoc32\wins\c)
725 # - $Z - the current EPOC Z drive (eg o:\epoc32\release\wins\udeb\z)
726 # - $RELEASE - the epoc release directory for this build (eg o:\epoc32\release\wins\udeb)
727 # - $EPOC - the epoc root (eg o:\epoc32)
728 # - $ROOT - the root drive (eg o:)
729 # - $SUBSYSROOT - subsystem root e.g. security
732 my ($platform, $buildtype, $cmdref) = @_;
734 my $cdrive = "$EPOCROOT\\$platform\\c";
735 my $releasedir = "$EPOCROOT\\release\\$platform\\$buildtype";
736 my $zdrive = "$releasedir\\z";
738 ${$cmdref} =~ s/\$C/$cdrive/g;
739 ${$cmdref} =~ s/\$Z/$zdrive/g;
740 ${$cmdref} =~ s/\$RELEASE/$releasedir/g;
741 ${$cmdref} =~ s/\$EPOC/$EPOCROOT/g;
742 ${$cmdref} =~ s/\$ROOT/$ROOTDRIVE/g;
743 ${$cmdref} =~ s/\$SUBSYSROOT/$RELSUBSYSROOT/g;
747 # This subroutine acts as a preprocessor for a config file. It
748 # expands the test config file and produced a file in POSTPROCESSED
749 sub ParseTestConfigFile
753 # Firstly, copy the configuration file into the postprocessed file
754 copy($TESTCONFIGFILE, $POSTPROCESSED);
756 # set up boolean to indicate if preprocessing of #include is done
761 # reset the keepgoing flag
764 # if we have to keep going, copy the postprocessed file into a temp
765 my $tempfile = "$RESULTDIR\\temp.txt";
766 move ($POSTPROCESSED, $tempfile);
768 open (TEMPFILE, "< $tempfile") || die "error opening $tempfile for reading";
769 open (POSTFILE, "> $POSTPROCESSED") || die "error opening $POSTPROCESSED for writing";
771 # Now search the temp file for instances of #include
775 # check for comments - use C++ style //
776 if ( $line =~ /(.*)\/\/.*/ )
778 # set the keepgoing flag
780 print POSTFILE "$1\n";
782 elsif ( $line =~ /\#include[ ]+\"([^\"]*)\"/ )
784 # set the keepgoing flag because a #include has been found
787 # now write the entire contents of this file into the
788 # the postprocessed file
789 my $contents = `type $SUBSYSTEMROOT\\$1`;
790 print POSTFILE "$contents\n";
792 elsif ( $line =~ /^\s*$/ )
794 # remove if we have only whitespaces
798 print POSTFILE $line;
804 # delete the temp file
811 # this function just prints a string to both the log file and the error file
820 ReportToFiles("\n------------------- Now building roms\n\n");
822 chdir ("$EPOCROOT\\rom");
824 # create a new directory for the roms
825 my $romdir = "$RESULTDIR\\roms";
826 system("mkdir \"$romdir\"");
828 # define the oby file to use
829 my $oby_file = "techview.oby";
831 # firstly, make sure the SecurityTests.iby file has been included from the techview.oby
832 if (open(OBY, ">> include\\$oby_file"))
834 print OBY "\n#include <SecurityTests.iby>\n";
838 # Now go through the list of rom targets and build
839 foreach my $rom (@ROMPLATFORMS)
841 ExecAndOutputToLog("tools\\buildrom -D__NOWATCHER__ -o$romdir\\$rom.img $rom $oby_file");
847 # Sets a variable from an environment variable or a default value if the
848 # environment variable has not been set
849 my ($variable, $env_name, $default) = @_;
851 ${$variable} = $ENV{$env_name};
854 ${$variable} = $default;
858 # remove the watchers (prevents connection intermittently to NTRas)
861 my ($platform, $bt) = @_;
863 ReportToFiles("------------------- Removing watchers\n");
865 if ( ($platform eq "wins") or ($platform eq "winscw") )
867 # emulator build, delete the dlls for beech and exes for cedar
868 system("del $EPOCROOT\\release\\$platform\\$bt\\watcher.dll");
869 system("del $EPOCROOT\\release\\$platform\\$bt\\z\\system\\libs\\watcher.dll");
870 system("del $EPOCROOT\\release\\$platform\\$bt\\watcher.exe");
871 system("del $EPOCROOT\\release\\$platform\\$bt\\z\\system\\libs\\watcher.exe");
875 # hardware. remove the watchers from startup script
878 system("attrib -r $TECHVIEWROOT\\toolkit\\startup\\group\\start.rss");
879 system("copy $SUBSYSTEMROOT\\testframework\\test\\autotesting\\startnowatchers.rss $TECHVIEWROOT\\toolkit\\startup\\group\\start.rss");