DSP createtest now calculate the size of body/header

now we need to split the test 


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3444 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
nakeee 2009-06-14 20:52:17 +00:00
parent ac50318a8b
commit f8d2411dc3
1 changed files with 32 additions and 1 deletions

View File

@ -7,7 +7,7 @@ use Getopt::Long;
use Data::Dumper; use Data::Dumper;
sub usage() { sub usage() {
die("createtest -i <test template>\n"); die("createtest -i <test template> -c <command> \n");
} }
sub parseString { sub parseString {
@ -36,6 +36,33 @@ sub generateTest {
} }
} }
sub calculateLines {
my $text = shift;
my $lines = 0;
my $incdir = "./";
foreach my $line (split /\n/, $text) {
next if ($line =~ /^\S*$/);
next if ($line =~ /^\S*;/);
next if ($line =~ /:/);
if ($line =~ /incdir\s*\"(.*)\"/) {
$incdir = $1;
} elsif ($line =~ /include\s*\"(.*)\"/) {
my $incname = "$incdir/$1";
open(INCLUDE, "<$incname") ||
die("Can't open include file $incname: $!\n");
my $include = join "", <INCLUDE>;
$lines += calculateLines($include);
} else {
$lines++;
}
}
return $lines;
}
my ($cmds,$input,$output); my ($cmds,$input,$output);
if (!GetOptions('cmds|c=s' => \$cmds, if (!GetOptions('cmds|c=s' => \$cmds,
'input|i=s' => \$input, 'input|i=s' => \$input,
@ -54,8 +81,12 @@ foreach my $cmd (split(/,/, $cmds)) {
my $name = parseString($xtest->{'name'}, $cmd); my $name = parseString($xtest->{'name'}, $cmd);
$name =~ s/ /_/g; $name =~ s/ /_/g;
my $desc = parseString($xtest->{'description'}, $cmd); my $desc = parseString($xtest->{'description'}, $cmd);
my $header = parseString($xtest->{'header'}, $cmd); my $header = parseString($xtest->{'header'}, $cmd);
my $hsize = calculateLines($header);
my $body = parseString($xtest->{'body'}, $cmd); my $body = parseString($xtest->{'body'}, $cmd);
my $bsize = calculateLines($body);
open(OUTPUT, ">$name.ds") || open(OUTPUT, ">$name.ds") ||
die("Can't open file $name for writing: $!\n"); die("Can't open file $name for writing: $!\n");