buildverification/smoketest/SmokeTestServer.pl
branchRCL_3
changeset 10 4ca382093dae
parent 5 6beaa9cf4752
child 11 493058e57c8c
--- a/buildverification/smoketest/SmokeTestServer.pl	Mon Feb 22 17:54:00 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,334 +0,0 @@
-# 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 "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:
-# TestServer.pl 
-# This script was born on 19/10/2004
-# 
-#
-
-use strict;
-
-my $jobsfolder = "d:\\Jobs\\";
-
-# Loop forever
-while (1)
-{
-	open LogFile, ">>d:\\SmokeTestServerLog.txt" or die "Cannot open log file: $!";
-	
-	print "\n***********************\n";
-	print "\n*** START PUBLISHER ***\n";
-	print "\n***********************\n";
-	print "\n";
-	print LogFile "\n***********************\n";
-	print LogFile "\n*** START PUBLISHER ***\n";
-	print LogFile "\n***********************\n";
-	print LogFile "\n";
-	
-	my $localtimes = localtime;
-	print "\n*** Current Time: $localtimes ***\n";
-	print LogFile "\n*** Current Time: $localtimes ***\n";
-	
-	# 
-	# Check if there are any results ready for publishing
-	#
-	print "\n";
-	print "#\n# Check if there are any results ready for publishing\n#\n"; 
-	print "\n";	
-	print LogFile "\n";
-	print LogFile "#\n# Check if there are any results ready for publishing\n#\n"; 
-	print LogFile "\n";	
-	
-	opendir JobDir, $jobsfolder or die "Cannot open jobs dir $jobsfolder: $!";
-		
-	my @jobs = readdir(JobDir);
-	
-	# to remove "." and ".." from this list
-	shift @jobs;
-	shift @jobs;
-	
-	if (!scalar(@jobs))
-	{
-		print "\nNo Jobs to publish\n";
-		print LogFile "\nNo Jobs to publish\n";
-	}
-	else
-	{
-		# 
-		# Loop though each directory and publish logs
-		#
-		print "\n";
-		print "#\n# Loop though each directory and publish logs\n#\n"; 
-		print "\n";
-		print LogFile "\n";
-		print LogFile "#\n# Loop though each directory and publish logs\n#\n"; 
-		print LogFile "\n";
-			
-		foreach my $name (sort { $a <=> $b } @jobs)
-		{
-			if ( -d $jobsfolder.$name)
-			{
-				print "\n*** Found Job: $name ***\n";
-				print LogFile "\n*** Found Job: $name ***\n";
-				
-				# Check to see if job has been completed.
-				if (isJobFinished($name))
-				{
-					# 
-					# Publish the results
-					#
-					print "\n";
-					print "#\n# Publish the results\n#\n"; 
-					print "\n";
-					print LogFile "\n";
-					print LogFile "#\n# Publish the results\n#\n"; 
-					print LogFile "\n";
-					
-					my $publishfile = $jobsfolder.$name."\\publish.txt";
-					
-					if (-r $publishfile)
-					{
-						open (PUBLISH, $publishfile) or GoNext("Cannot find publish details for $name");
-						my $count = 0;
-						my $index = 0;
-						while (my $publishlocation = <PUBLISH>)
-						{
-							chomp $publishlocation;
-							
-							$index++;
-							
-							print "\nPublish Location = $publishlocation\n";
-							print LogFile "\nPublish Location = $publishlocation\n";
-							
-							`mkdir $publishlocation`; # or GoNext("$publishlocation\\$name\\");
-							
-							my $lookIn = "$jobsfolder$name\\output";
-							my ($source,$runid,$buildname) = getSourceDir($lookIn);
-							
-							my $srcdir = $source."\\xml";
-							my $trgtdir= $publishlocation."xml\\";
-							
-							my $xcopycmd= "xcopy /C /Y /E $srcdir $trgtdir ";
-							print `$xcopycmd`;
-							
-							#
-							# Copy the contents of Output and reports -
-							#
-							# runXX_<snapshot>_SymbianOS_vYY.xml/html to <snapshot>_Symbian_OS_vYY.xml/html
-							#
-							
-							my $xmlfile   = "$source\\run".$runid."_".$buildname."\.xml";
-							my $htmlfile  = "$source\\run".$runid."_".$buildname."\.html";
-							
-							if (-e $xmlfile)  {
-								
-								print "copy $xmlfile to $buildname.xml";
-								system "copy $xmlfile $publishlocation\\$buildname.xml";
-							}
-							
-							if (-e $htmlfile)  {
-								
-								print "copy $htmlfile to $buildname.html";
-								system "copy $htmlfile $publishlocation\\$buildname.html";
-							}
-							
-							print "\nNumber of Files Copied = $1\n" if $xcopycmd =~ m/(\d+)\s\w+/;
-							print LogFile "\nNumber of Files Copied = $1\n" if $xcopycmd =~ m/(\d+)\s\w+/;
-							
-							$count += $1;
-							
-							# The input should be copied onto \\devbuilds\master\.. but not \\devbuilds\logs\master\..
-							if ($index < 2)
-							{
-								print "\n\nCopy the Input\n";
-								$source = "$jobsfolder$name\\input\\*";
-								
-								# Copy the contents of Input
-								print "\ncmd: xcopy /C /Y /E $source $publishlocation 2>&1\n";
-								print LogFile "\ncmd: xcopy /C /Y /E $source $publishlocation 2>&1\n";
-								my $xcopy = `xcopy /C /Y /E $source $publishlocation 2>&1`;
-								print $xcopy;
-								
-								print "\nNumber of Files Copied = $1\n" if $xcopy =~ m/(\d+)\s\w+/;
-								print LogFile "\nNumber of Files Copied = $1\n" if $xcopy =~ m/(\d+)\s\w+/;
-								$count += $1;
-							}
-						}						
-						close Publish;
-						
-						print "\nTotal Number of files copied = $count\n";
-						print LogFile "\nTotal Number of files copied = $count\n";
-						
-						# Minimum 3 files have to be copied - Trace.txt, sys$rom.bin and armX.tpkg
-						if ($count >= 3)
-						{
-							# it is fine to delete the jobs dir
-							print "\ncmd: rd $jobsfolder$name /Q /S  2>&1\n";
-							print LogFile "\ncmd: rd $jobsfolder$name /Q /S  2>&1\n";
-							print `rd $jobsfolder$name /Q /S  2>&1`;
-						}
-					}
-					else
-					{
-						print "\n*** Error publishing results ***\n Cannot open publish file: $jobsfolder"."$name"."\\publish.txt\n";
-						print LogFile "\n*** Error publishing results ***\n Cannot open publish file: $jobsfolder"."$name"."\\publish.txt\n";
-					}
-				}
-				else
-				{
-					print "\nThe Job $name is either still running or has encountered an error\n";				
-					print LogFile "\nThe Job $name is either still running or has encountered an error\n";				
-				}
-			}
-			else
-			{
-				print "*** Error ***\nDir does not exist! $jobsfolder.$name\n";
-				print LogFile "*** Error ***\nDir does not exist! $jobsfolder.$name\n";
-			}
-		}
-	}
-	close JobDir;
-	
-	my $localtimes = localtime;
-	print "\n*** Current Time: $localtimes ***\n";
-	print LogFile "\n*** Current Time: $localtimes ***\n";
-	
-	print "\n";
-	print "\n*********************\n";
-	print "\n*** END PUBLISHER ***\n";
-	print "\n*********************\n";
-	print "\n";
-	print "\n";
-	print LogFile "\n";
-	print LogFile "\n*********************\n";
-	print LogFile "\n*** END PUBLISHER ***\n";
-	print LogFile "\n*********************\n";
-	print LogFile "\n";
-	print LogFile "\n";
-	
-	close LogFile;
-	sleep 900;
-}
-
-sub GoNext
-{
-	print "\n*** Error in Publisher ***\n $_[0] $!\n";
-	print LogFile "\n*** Error in Publisher ***\n $_[0] $!\n";
-	next;
-}
-
-# identify if a job has finished
-sub isJobFinished($) {
-	
-	my $jobid = shift;
-	my @cmd_out = `testdriver.cmd jobstatus -j $jobid 2>&1`;
-	
-	foreach (@cmd_out) {
-		if (m/completed/) { return 1; }
-	}
-	
-	return 0;
-}
-
-sub getSourceDir($)
-{
-	my $source = shift;
-	my $runid  = 0;
-	my $buildname;
-	
-	#
-	# Find the correct directory to publish
-	#
-	
-	if (opendir RESULTS, $source)
-	{	
-		my @dirArray = readdir(RESULTS);
-		
-		#print "@results";	
-		# to remove "." and ".." from this list
-		shift @dirArray;
-		shift @dirArray;
-		
-		if (!scalar(@dirArray))
-		{
-			print "REMARK: The result for $_[0] has an empty $source directory";
-			return;
-		}
-		else
-		{
-			print "\nContents of $source = @dirArray\n";
-			$source .= "\\$dirArray[0]"; 
-			# dirArray should always have just the one subdir - 0XXXX_Symbian_OS_vX.X
-			
-			$buildname = $dirArray[0];
-	
-			if (opendir tempDir, "$source")
-			{
-				# to remove "." and ".." from this list
-				my @dirArray = readdir(tempDir);
-				shift @dirArray;
-				shift @dirArray;
-				
-				print "\nContents of $source = @dirArray\n";
-				
-				foreach my $directory (@dirArray)
-				{
-					if ($directory =~ /(?:$_[0])/i)
-					{
-						$source .= "\\$directory";
-						
-						# added this to remove udeb/xx
-						if (opendir tempDir, "$source")
-						{
-							# to remove "." and ".." from this list
-							@dirArray = readdir(tempDir);
-							shift @dirArray;
-							shift @dirArray;
-				
-							print "\nContents of $source = @dirArray\n";
-				
-							foreach my $directory (@dirArray)
-							{
-								if ($directory =~ /(udeb|urel)/i)
-								{
-									$source .= "\\$directory";
-									if (opendir tempDir, "$source")
-									{
-										# to remove "." and ".." from this list
-										@dirArray = readdir(tempDir);
-										shift @dirArray;
-										shift @dirArray;
-				
-										print "\nContents of $source = @dirArray\n";
-				
-										foreach my $directory (@dirArray)
-										{
-											if ($directory =~ /(^[0-9]+)/i)
-											{
-												$source .= "\\$directory";
-												$runid = $directory;
-												last;
-											}
-										}
-									}
-									last;
-								}
-							}
-						}
-						
-					}
-				}
-			}
-		}
-	}
-	return ($source, $runid, $buildname);
-}
\ No newline at end of file