Browse Source

Allow subclasses of <junit> to plug in command lines of their own.

Submitted by:	Mariano Benitez <mariano at fuegolabs dot com>


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@276129 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 21 years ago
parent
commit
b4c31671f5
2 changed files with 30 additions and 20 deletions
  1. +27
    -17
      src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java
  2. +3
    -3
      src/main/org/apache/tools/ant/types/CommandlineJava.java

+ 27
- 17
src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java View File

@@ -123,7 +123,7 @@ import junit.framework.TestResult;
*/
public class JUnitTask extends Task {

private CommandlineJava commandline = new CommandlineJava();
private CommandlineJava commandline;
private Vector tests = new Vector();
private Vector batchTests = new Vector();
private Vector formatters = new Vector();
@@ -338,7 +338,7 @@ public class JUnitTask extends Task {
* @since Ant 1.2
*/
public void setMaxmemory(String max) {
commandline.setMaxmemory(max);
getCommandline().setMaxmemory(max);
}

/**
@@ -352,7 +352,7 @@ public class JUnitTask extends Task {
* @since Ant 1.2
*/
public void setJvm(String value) {
commandline.setVm(value);
getCommandline().setVm(value);
}

/**
@@ -365,7 +365,7 @@ public class JUnitTask extends Task {
* @since Ant 1.2
*/
public Commandline.Argument createJvmarg() {
return commandline.createVmArgument();
return getCommandline().createVmArgument();
}

/**
@@ -390,7 +390,7 @@ public class JUnitTask extends Task {
*/
public void addSysproperty(Environment.Variable sysp) {

commandline.addSysproperty(sysp);
getCommandline().addSysproperty(sysp);
}

/**
@@ -405,7 +405,7 @@ public class JUnitTask extends Task {
// see bugzilla report 21684
String testString = sysp.getContent();
getProject().log("sysproperty added : " + testString, Project.MSG_DEBUG);
commandline.addSysproperty(sysp);
getCommandline().addSysproperty(sysp);
}

/**
@@ -419,7 +419,7 @@ public class JUnitTask extends Task {
* @since Ant 1.6
*/
public void addSyspropertyset(PropertySet sysp) {
commandline.addSyspropertyset(sysp);
getCommandline().addSyspropertyset(sysp);
}

/**
@@ -429,7 +429,7 @@ public class JUnitTask extends Task {
* @since Ant 1.2
*/
public Path createClasspath() {
return commandline.createClasspath(getProject()).createPath();
return getCommandline().createClasspath(getProject()).createPath();
}

/**
@@ -438,7 +438,7 @@ public class JUnitTask extends Task {
* @since Ant 1.6
*/
public Path createBootclasspath() {
return commandline.createBootclasspath(getProject()).createPath();
return getCommandline().createBootclasspath(getProject()).createPath();
}

/**
@@ -532,10 +532,10 @@ public class JUnitTask extends Task {
* @param asserts assertion set
*/
public void addAssertions(Assertions asserts) {
if (commandline.getAssertions() != null) {
if (getCommandline().getAssertions() != null) {
throw new BuildException("Only one assertion declaration is allowed");
}
commandline.setAssertions(asserts);
getCommandline().setAssertions(asserts);
}

/**
@@ -560,7 +560,7 @@ public class JUnitTask extends Task {
* @since Ant 1.7
*/
public void setCloneVm(boolean cloneVm) {
commandline.setCloneVm(cloneVm);
getCommandline().setCloneVm(cloneVm);
}

/**
@@ -570,7 +570,7 @@ public class JUnitTask extends Task {
* @since Ant 1.2
*/
public JUnitTask() throws Exception {
commandline
getCommandline()
.setClassname("org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner");
}

@@ -688,7 +688,7 @@ public class JUnitTask extends Task {
log("Permissions ignored when running in forked mode!", Project.MSG_WARN);
}

CommandlineJava cmd = (CommandlineJava) commandline.clone();
CommandlineJava cmd = (CommandlineJava) getCommandline().clone();

cmd.setClassname("org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner");
cmd.createArgument().setValue(test.getName());
@@ -916,13 +916,13 @@ public class JUnitTask extends Task {
+ "the same VM.", Project.MSG_WARN);
}

if (commandline.getBootclasspath() != null) {
if (getCommandline().getBootclasspath() != null) {
log("bootclasspath is ignored if running in the same VM.",
Project.MSG_WARN);
}

CommandlineJava.SysProperties sysProperties =
commandline.getSystemProperties();
getCommandline().getSystemProperties();
if (sysProperties != null) {
sysProperties.setSystem();
}
@@ -1154,7 +1154,7 @@ public class JUnitTask extends Task {
* @since Ant 1.6
*/
private void createClassLoader() {
Path userClasspath = commandline.getClasspath();
Path userClasspath = getCommandline().getClasspath();
if (userClasspath != null) {
if (reloading || classLoader == null) {
Path classpath = (Path) userClasspath.clone();
@@ -1176,4 +1176,14 @@ public class JUnitTask extends Task {
}
}
}

/**
* @since Ant 1.7
*/
protected CommandlineJava getCommandline() {
if (commandline == null) {
commandline = new CommandlineJava();
}
return commandline;
}
}

+ 3
- 3
src/main/org/apache/tools/ant/types/CommandlineJava.java View File

@@ -463,7 +463,7 @@ public class CommandlineJava implements Cloneable {
* Get the VM command parameters, including memory settings
* @return
*/
private Commandline getActualVMCommand() {
protected Commandline getActualVMCommand() {
Commandline actualVMCommand = (Commandline) vmCommand.clone();
if (maxMemory != null) {
if (vmVersion.startsWith("1.1")) {
@@ -604,7 +604,7 @@ public class CommandlineJava implements Cloneable {
*
* @since Ant 1.6
*/
private boolean haveClasspath() {
protected boolean haveClasspath() {
Path fullClasspath = classpath != null
? classpath.concatSystemClasspath("ignore") : null;
return fullClasspath != null
@@ -621,7 +621,7 @@ public class CommandlineJava implements Cloneable {
*
* @since Ant 1.6
*/
private boolean haveBootclasspath(boolean log) {
protected boolean haveBootclasspath(boolean log) {
if (bootclasspath != null
&& bootclasspath.toString().trim().length() > 0) {



Loading…
Cancel
Save