kerneltest/f32test/group/check.bat
changeset 0 a41df078684a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/kerneltest/f32test/group/check.bat	Mon Oct 19 15:55:17 2009 +0100
@@ -0,0 +1,187 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of the License "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description:
+@rem
+
+@perl -x check.bat
+@goto end
+#!perl
+
+require Cwd;
+$cwd=Cwd::getcwd();
+#print "cwd: ",$cwd,"\n";
+$cwd =~ s/\//\\/;
+$cwd =~ /^(\w:)?([\\|\/]\S+[\\|\/])/isx;
+$drive=$1;
+$prjroot=$2;
+#print "drive ",$drive,"\n";
+#print "project root: ",$prjroot,"\n";
+@cpps=();
+@mmps=();
+@mmpflags=();
+%sources=();
+%sourceusers=();
+ls ($prjroot);
+#print "CPP files:\n";
+#foreach $entry (@cpps)
+#	{
+#	print $entry,"\n";
+#	}
+#print "MMP files:\n";
+$count=0;
+$countz=0;
+$countsrc=0;
+foreach $entry (@mmps)
+	{
+#	print $entry,"\n";
+	$srclist=$sources{$entry};
+	$mmpflags[$count]=0;
+	++$count;
+	++$countz if (scalar(@$srclist)==0);
+	$countsrc += scalar(@$srclist);
+	foreach $src (@$srclist)
+		{
+		$uselist=$sourceusers{$src};
+		$sourceusers{$src}=$uselist." ".$entry;
+#		print "\t",$src,"\n";
+		}
+	}
+$hashsize=scalar(%sources);
+#print $hashsize;
+#print "Count=",$count,"\n";
+#print "CountZ=",$countz,"\n";
+#print "CountSrc=",$countsrc,"\n";
+
+foreach $entry (@cpps)
+	{
+	$uses=$sourceusers{$entry};
+	print "File ",$entry," not referenced by any .MMP file\n" unless $uses;
+	}
+
+parsebldinf();
+
+$i=0;
+foreach $entry (@mmps)
+	{
+	next if $mmpflags[$i++];
+	print "\n",$entry,".MMP does not appear in BLD.INF\n";
+	print "\t Source files:\n";
+	$srclist=$sources{$entry};
+	foreach $src (@$srclist)
+		{
+		print "\t",$src,"\n";
+		}
+	}
+end;
+
+sub ls
+	{
+	my $dir=@_[0];
+	$dir =~ s/\//\\/;
+#	print $dir,"\n";
+	opendir(DIR,$dir);
+	my @dir=readdir(DIR);
+	closedir(DIR);
+	my $entry;
+	my $fullentry;
+	foreach $entry (@dir)
+		{
+		$entry=~s/\//\\/;
+		next if (($entry eq ".") or ($entry eq ".."));
+		$fullentry=$dir.$entry;
+		if (-d $fullentry)
+			{
+			ls($fullentry."\\");
+			}
+		else
+			{
+			push @cpps, uc($fullentry) if ($entry =~ /\S+\.cpp/isx);
+			if ($entry =~ /(\S+)\.mmp/isx)
+				{
+				push @mmps, uc($1);
+				parsemmp($fullentry,\%sources);
+				}
+#			print $fullentry,"\n";
+			}
+		}
+	}
+
+sub parsemmp
+	{
+	my $mmpfile=@_[0];
+	my $array=@_[1];
+	my $project;
+	my $subproject;
+#	print "ParseMMP ",$mmpfile,"\n";
+	open(MMP,$mmpfile);
+	my @sources=();
+	while(<MMP>)
+		{
+		if (/^PROJECT\s+(\S+)/isx)
+			{
+			$project=uc($1);
+#			print "Project ",$project,"\n";
+			}
+		elsif (/^SUBPROJECT\s+(\S+)/isx)
+			{
+			$subproject=uc($1);
+#			print "Subproject ",$subproject,"\n";
+			}
+		elsif (/^source\s*(.+)/isx)
+			{
+#			print $1;
+			my $list=$1;
+			while($list)
+				{
+				$list =~ /^(\S+)\s*(.*)/isx;
+				push @sources, "\\".$project."\\".$subproject."\\".uc($1);
+				$list=$2;
+#				print "\t Source ",$1,"\n";
+				}
+			}
+		}
+	close(MMP);
+	$mmpfile =~ /\S*\\(\S+)\.mmp/isx;
+	$mmpfileshort=uc($1);
+	$$array{$mmpfileshort}=\@sources;
+	}
+
+sub parsebldinf
+	{
+	my $reachedmmps=0;
+	open(BLDINF,"bld.inf");
+	while (<BLDINF>)
+		{
+#		print;
+		if ($reachedmmps==0)
+			{
+			$reachedmmps=1 if (/PRJ_MMPFILES|PRJ_TESTMMPFILES/isx);
+			next;
+			}
+		/(\S+)\s*.*/isx;
+		my $mmpfile=uc($1);
+#		print "****************",$mmpfile,"\n";
+		my $mmp;
+		my $i=0;
+		foreach $mmp (@mmps)
+			{
+			$mmpflags[$i]=1 if ($mmp eq $mmpfile);
+			++$i;
+			}
+		}
+	close(BLDINF);
+	}
+
+__END__
+:end