Browse Source

Testcase for duplicate targets. Reported by Dominique Devienne.

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@276107 13f79535-47bb-0310-9956-ffa450edef68
master
Jan Materne 21 years ago
parent
commit
c97b81b64e
2 changed files with 58 additions and 2 deletions
  1. +15
    -0
      src/etc/testcases/core/duplicate-target.xml
  2. +43
    -2
      src/testcases/org/apache/tools/ant/ProjectTest.java

+ 15
- 0
src/etc/testcases/core/duplicate-target.xml View File

@@ -0,0 +1,15 @@
<?xml version="1.0"?>

<project>
<target name="once">
<echo>once</echo>
</target>

<target name="twice">
<echo>twice-a</echo>
</target>

<target name="twice">
<echo>twice-b</echo>
</target>
</project>

+ 43
- 2
src/testcases/org/apache/tools/ant/ProjectTest.java View File

@@ -34,7 +34,8 @@ import junit.framework.TestSuite;
* Very limited test class for Project. Waiting to be extended. * Very limited test class for Project. Waiting to be extended.
* *
* @author Stefan Bodewig * @author Stefan Bodewig
*/
* @author Jan Matèrne
*/
public class ProjectTest extends TestCase { public class ProjectTest extends TestCase {


private Project p; private Project p;
@@ -203,6 +204,13 @@ public class ProjectTest extends TestCase {
assertTrue(p.getTaskDefinitions().contains(org.apache.tools.ant.taskdefs.Echo.class)); assertTrue(p.getTaskDefinitions().contains(org.apache.tools.ant.taskdefs.Echo.class));
} }


// Bug in Ant 1.6/1.7 found by Dominique: there must no multiple
// targets with the same name in a project.
public void testDuplicateTargets() {
BFT bft = new BFT("", "core/duplicate-target.xml");
bft.expectBuildException("twice", "Duplicate target");
}

private class DummyTaskPrivate extends Task { private class DummyTaskPrivate extends Task {
public DummyTaskPrivate() {} public DummyTaskPrivate() {}
public void execute() {} public void execute() {}
@@ -213,9 +221,42 @@ public class ProjectTest extends TestCase {
public void execute() {} public void execute() {}
} }


private class BFT extends org.apache.tools.ant.BuildFileTest {
BFT(String name, String buildfile) {
super(name);
this.buildfile = buildfile;
setUp();
}

// avoid multiple configurations
boolean isConfigured = false;

// the buildfile to use
String buildfile = "";

public void setUp() {
if (!isConfigured) {
configureProject("src/etc/testcases/"+buildfile);
isConfigured = true;
}
}

public void tearDown() { }

// call a target
public void doTarget(String target) {
if (!isConfigured) setUp();
executeTarget(target);
}

public org.apache.tools.ant.Project getProject() {
return super.getProject();
}
}//class-BFT

} }


class DummyTaskPackage extends Task { class DummyTaskPackage extends Task {
public DummyTaskPackage() {} public DummyTaskPackage() {}
public void execute() {} public void execute() {}
}
}

Loading…
Cancel
Save