You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by ev...@apache.org on 2004/01/14 11:54:52 UTC
cvs commit: maven-components/maven-mboot/src/main Bootstrapper.java TestRunnerBooter.java
evenisse 2004/01/14 02:54:52
Modified: maven-mboot build
maven-mboot/src/bash maven.functions
maven-mboot/src/main Bootstrapper.java TestRunnerBooter.java
Log:
Add tests run to mboot.
Revision Changes Path
1.4 +1 -1 maven-components/maven-mboot/build
Index: build
===================================================================
RCS file: /home/cvs/maven-components/maven-mboot/build,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- build 13 Jan 2004 17:38:30 -0000 1.3
+++ build 14 Jan 2004 10:54:51 -0000 1.4
@@ -20,7 +20,7 @@
repoLocal=`cygpath -pu "$repoLocal"`
fi
-compile .:$repoLocal/junit/jars/junit-3.8.1.jar:$repoLocal/maven/jars/surefire-runner-1.0.jar:$repoLocal/plexus/jars/plexus-utils-1.0-beta-1.jar target/classes src/main
+compile ".:$repoLocal/junit/jars/junit-3.8.1.jar:$repoLocal/maven/jars/surefire-runner-1.0.jar:$repoLocal/plexus/jars/plexus-utils-1.0-beta-1.jar" target/classes src/main
isCommandSuccessful $? "Failed compiling Maven bootstrapper classes!"
1.8 +18 -4 maven-components/maven-mboot/src/bash/maven.functions
Index: maven.functions
===================================================================
RCS file: /home/cvs/maven-components/maven-mboot/src/bash/maven.functions,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- maven.functions 13 Jan 2004 17:38:30 -0000 1.7
+++ maven.functions 14 Jan 2004 10:54:52 -0000 1.8
@@ -20,7 +20,7 @@
{
# $1 == classpath
# $2 == Main class
- # $3 == Mail args
+ # $3 == Main args
if $cygwin; then
CP=`cygpath -pw "$1"`
@@ -33,7 +33,20 @@
runTests()
{
-# TO DO
+ # $1 == classpath
+ # $2 == home args
+ # $3 == repo local
+ # $4 == dependencies file
+ # $5 == includes file
+ # $6 == excludes file
+
+ if $cygwin; then
+ CP=`cygpath -pw "$1"`
+ else
+ CP=$1
+ fi
+
+ "${JAVACMD}" -classpath "$CP" TestRunnerBooter "$2" "$3" $4 $5 $6
}
compile()
@@ -156,7 +169,7 @@
copyResources
- runTests
+ runTests ".:${MBOOT_HOME}/classes:$repoLocal/junit/jars/junit-3.8.1.jar:$repoLocal/maven/jars/surefire-runner-1.0.jar:$repoLocal/plexus/jars/plexus-utils-1.0-beta-1.jar" "$home" "$repoLocal" bootstrap.libs bootstrap.tests.includes bootstrap.tests.excludes
if [ "$2" = "default" ]
then
@@ -173,7 +186,8 @@
rm -f bootstrap.libs > /dev/null 2>&1
rm -f bootstrap.resources > /dev/null 2>&1
rm -f bootstrap.repo > /dev/null 2>&1
- rm -f bootstrap.test > /dev/null 2>&1
+ rm -f bootstrap.tests.includes > /dev/null 2>&1
+ rm -f bootstrap.tests.excludes > /dev/null 2>&1
fi
)
}
1.7 +126 -1 maven-components/maven-mboot/src/main/Bootstrapper.java
Index: Bootstrapper.java
===================================================================
RCS file: /home/cvs/maven-components/maven-mboot/src/main/Bootstrapper.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- Bootstrapper.java 13 Jan 2004 17:38:30 -0000 1.6
+++ Bootstrapper.java 14 Jan 2004 10:54:52 -0000 1.7
@@ -26,6 +26,8 @@
private BootstrapPomParser bootstrapPomParser;
private List dependencies;
+
+ private UnitTests unitTests;
private List resources;
@@ -77,6 +79,62 @@
writeFile( "bootstrap.classpath", classPath.toString() );
writeFile( "bootstrap.libs", libs.toString() );
+
+ unitTests = bootstrapPomParser.getUnitTests();
+
+ StringBuffer tests = new StringBuffer();
+
+ tests.append(unitTests.getDirectory());
+
+ tests.append("@");
+
+ int size = unitTests.getIncludes().size();
+
+ // If there are no includes specified then we want it all.
+ if ( size == 0 )
+ {
+ tests.append( "'*'" );
+ }
+
+ for ( int j = 0; j < size; j++ )
+ {
+ String include = (String) unitTests.getIncludes().get( j );
+
+ tests.append( include );
+
+ if ( j != size - 1 )
+ {
+ tests.append( "," );
+ }
+ }
+
+ tests.append( "\n" );
+
+ writeFile( "bootstrap.tests.includes", tests.toString() );
+
+ tests = new StringBuffer();
+
+ tests.append(unitTests.getDirectory());
+
+ tests.append("@");
+
+ size = unitTests.getExcludes().size();
+
+ for ( int j = 0; j < size; j++ )
+ {
+ String exclude = (String) unitTests.getExcludes().get( j );
+
+ tests.append( exclude );
+
+ if ( j != size - 1 )
+ {
+ tests.append( "," );
+ }
+ }
+
+ tests.append( "\n" );
+
+ writeFile( "bootstrap.tests.excludes", tests.toString() );
resources = bootstrapPomParser.getResources();
@@ -101,7 +159,7 @@
res.append( "@" );
- int size = r.getIncludes().size();
+ size = r.getIncludes().size();
// If there are no includes specified then we want it all.
if ( size == 0 )
@@ -153,6 +211,8 @@
extends DefaultHandler
{
private List dependencies = new ArrayList();
+
+ private UnitTests unitTests;
private List resources = new ArrayList();
@@ -176,6 +236,11 @@
{
return dependencies;
}
+
+ public UnitTests getUnitTests()
+ {
+ return unitTests;
+ }
public List getResources()
{
@@ -208,8 +273,13 @@
{
return;
}
+ else if ( rawName.equals( "unitTestSourceDirectory" ) )
+ {
+ unitTests = new UnitTests();
+ }
else if ( rawName.equals( "unitTest" ) )
{
+ unitTests = new UnitTests();
insideUnitTest = true;
}
else if ( rawName.equals( "dependency" ) )
@@ -252,6 +322,10 @@
resources.addAll( p.getResources() );
}
+ else if ( rawName.equals( "unitTestSourceDirectory" ) )
+ {
+ unitTests.setDirectory(getBodyText());
+ }
else if ( rawName.equals( "unitTest" ) )
{
insideUnitTest = false;
@@ -296,6 +370,17 @@
}
}
+ else if ( insideUnitTest )
+ {
+ if ( rawName.equals( "include" ) )
+ {
+ unitTests.addInclude( getBodyText() );
+ }
+ else if ( rawName.equals( "exclude" ) )
+ {
+ unitTests.addExclude( getBodyText() );
+ }
+ }
else if ( insideResource )
{
if ( rawName.equals( "directory" ) )
@@ -492,6 +577,46 @@
}
return false;
+ }
+ }
+
+ public static class UnitTests
+ implements Serializable
+ {
+ private String directory;
+
+ private List includes = new ArrayList();
+
+ private List excludes = new ArrayList();
+
+ public void addInclude( String pattern )
+ {
+ this.includes.add( pattern );
+ }
+
+ public void addExclude( String pattern )
+ {
+ this.excludes.add( pattern );
+ }
+
+ public List getIncludes()
+ {
+ return this.includes;
+ }
+
+ public List getExcludes()
+ {
+ return this.excludes;
+ }
+
+ public void setDirectory( String directory )
+ {
+ this.directory = directory;
+ }
+
+ public String getDirectory()
+ {
+ return this.directory;
}
}
1.2 +32 -3 maven-components/maven-mboot/src/main/TestRunnerBooter.java
Index: TestRunnerBooter.java
===================================================================
RCS file: /home/cvs/maven-components/maven-mboot/src/main/TestRunnerBooter.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TestRunnerBooter.java 13 Jan 2004 17:38:30 -0000 1.1
+++ TestRunnerBooter.java 14 Jan 2004 10:54:52 -0000 1.2
@@ -2,11 +2,14 @@
import org.codehaus.plexus.util.DirectoryScanner;
import org.codehaus.plexus.util.StringUtils;
+import java.io.BufferedReader;
import java.io.File;
+import java.io.FileReader;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import java.util.StringTokenizer;
public class TestRunnerBooter
{
@@ -34,15 +37,40 @@
File dependenciesFile = new File(args[2]);
+ List dependencies = new ArrayList();
+ BufferedReader buf = new BufferedReader(new FileReader(dependenciesFile));
+ String line;
+ while ((line = buf.readLine()) != null)
+ {
+ dependencies.add(line);
+ }
+ buf.close();
+
processDependencies( dependencies, classLoader );
File includesFile = new File(args[3]);
-
- File excludesFile = new File(args[4]);
-
List includes = new ArrayList();
+ buf = new BufferedReader(new FileReader(includesFile));
+ line = buf.readLine();
+ String includesStr = line.substring(line.indexOf("@")+1);
+ StringTokenizer st = new StringTokenizer( includesStr, "," );
+ while ( st.hasMoreTokens() )
+ {
+ includes.add( st.nextToken().trim() );
+ }
+ buf.close();
+ File excludesFile = new File(args[4]);
List excludes = new ArrayList();
+ buf = new BufferedReader(new FileReader(excludesFile));
+ line = buf.readLine();
+ String excludesStr = line.substring(line.indexOf("@")+1);
+ st = new StringTokenizer( excludesStr, "," );
+ while ( st.hasMoreTokens() )
+ {
+ excludes.add( st.nextToken().trim() );
+ }
+ buf.close();
String[] tests = collectTests( basedir,
includes,
@@ -64,6 +92,7 @@
}
private void processDependencies(List dependencies, IsolatedClassLoader classLoader)
+ throws Exception
{
for (Iterator i=dependencies.iterator(); i.hasNext(); )
{
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org