o modify the script to create a parallel structure for the ITs so we can look at different strategies. it

now shows the structure kenney and i have been chatting about that works like this:

  http://idisk.maven.org/jvanzyl/Public/IT.png


  Essentially the IT being the driver and the test-project is what's executed by the driver. What we have is a little
  backward right now.



git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@463722 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Jason van Zyl 2006-10-13 16:01:44 +00:00
parent 83a87f7987
commit bafa09fad7
1 changed files with 16 additions and 70 deletions

View File

@ -1,10 +1,12 @@
#!/usr/bin/perl
$dirname = "maven-core-it";
$newITs = "maven-core-it-new";
open( FILE, "maven-core-it/integration-tests-descriptions.txt" ) or die;
open( FILE, "$dirname/integration-tests-descriptions.txt" ) or die;
undef $/;
$readme = <FILE>;
close( FILE );
@descriptions = $readme =~ m/(it\d+\: .*?)(?=\nit\d+\:|$)/gsx;
for $desc (@descriptions) {
@ -12,72 +14,8 @@ for $desc (@descriptions) {
chomp ($value);
$comment{$name} = $value;
}
$preamble = <<EOF;
package org.apache.maven.it;
import java.io.*;
import java.util.*;
import junit.framework.*;
import org.apache.maven.it.*;
import org.codehaus.plexus.util.*;
public class IntegrationTests extends TestCase
{
private static final String rootdir = System.getProperty("maven.it.dir", "maven-core-it");
private Verifier verifier;
public IntegrationTests(String name)
{
super(name);
}
public static Test suite()
{
String[] tests = new String[]
{
EOF
$postamble = <<EOF;
public void tearDown() throws VerificationException
{
verifier.resetStreams();
}
}
EOF
print T $preamble;
$/ = "\n";
open( TESTS, "maven-core-it/integration-tests.txt" ) or die;
while ( <TESTS> )
{
chomp;
if ( /^\#/ )
{
print T "//";
}
print T "\"" . $_ . "\"," . "\n";
}
print T "};" . "\n";
$TEST_SUITE = <<EOF;
TestSuite suite = new TestSuite(IntegrationTests.class.getName());
for (int i = 0; i < tests.length; i++)
{
suite.addTest(new IntegrationTests(tests[i]));
}
return suite;
}
EOF
print T $TEST_SUITE;
system( "rm -rf $newITs" );
opendir(DIR, $dirname) or die "can't opendir $dirname: $!";
while (defined($filename = readdir(DIR))) {
@ -95,13 +33,21 @@ while (defined($filename = readdir(DIR))) {
die "no comment: $filename\n";
}
mkdir( "/tmp/mits" );
open( T, "> /tmp/mits/MavenIntegrationTest_$filename" . ".java" ) or die;
$itBaseDirectory = "$newITs/$filename";
$itTestCaseDirectory = "$itBaseDirectory/src/test/java/org/apache/maven/it";
$testFile = "$itTestCaseDirectory/MavenIntegrationTest_$filename" . ".java";
$testProjectDirectory = "$itBaseDirectory/src/test-project";
system( "mkdir -p $itTestCaseDirectory" );
system( "cp -r $dirname/$filename $testProjectDirectory" );
#system( "mkdir -p $testProjectDirectory" );
print $testFile . "\n";
open( T, "> $testFile") or die;
print $filename . "\n";
print T "package org.apache.maven.it;\n";
print T "import java.io.File;\n";
print T "public class MavenIntegrationTest${filename} /*extends AbstractMavenIntegrationTest*/ {\n";
print T "/** $comment{$filename} */\n";
print T "public void test_$filename() throws Exception {\n";
print T "String rootdir = System.getProperty(\"rootdir\");\n";