@@ -73,7 +73,12 @@ | |||
<configuration> | |||
<basedir>../../../..</basedir> | |||
<workingDirectory>../../../..</workingDirectory> | |||
<skipTests>true</skipTests> | |||
<systemProperties> | |||
<property> | |||
<name>ant.test.basedir.ignore</name> | |||
<value>true</value> | |||
</property> | |||
</systemProperties> | |||
</configuration> | |||
</plugin> | |||
</plugins> | |||
@@ -65,8 +65,13 @@ | |||
<configuration> | |||
<basedir>../../../..</basedir> | |||
<workingDirectory>../../../..</workingDirectory> | |||
<skipTests>true</skipTests> | |||
</configuration> | |||
<systemProperties> | |||
<property> | |||
<name>ant.test.basedir.ignore</name> | |||
<value>true</value> | |||
</property> | |||
</systemProperties> | |||
</configuration> | |||
</plugin> | |||
</plugins> | |||
<sourceDirectory>../../../../src/main</sourceDirectory> | |||
@@ -84,7 +84,12 @@ | |||
<configuration> | |||
<basedir>../../../..</basedir> | |||
<workingDirectory>../../../..</workingDirectory> | |||
<skipTests>true</skipTests> | |||
<systemProperties> | |||
<property> | |||
<name>ant.test.basedir.ignore</name> | |||
<value>true</value> | |||
</property> | |||
</systemProperties> | |||
</configuration> | |||
</plugin> | |||
</plugins> | |||
@@ -71,7 +71,12 @@ | |||
<configuration> | |||
<basedir>../../../..</basedir> | |||
<workingDirectory>../../../..</workingDirectory> | |||
<skipTests>true</skipTests> | |||
<systemProperties> | |||
<property> | |||
<name>ant.test.basedir.ignore</name> | |||
<value>true</value> | |||
</property> | |||
</systemProperties> | |||
</configuration> | |||
</plugin> | |||
</plugins> | |||
@@ -321,5 +321,41 @@ public final class MagicNames { | |||
* @since Ant 1.10.2 | |||
*/ | |||
public static final String TSTAMP_NOW_ISO = "ant.tstamp.now.iso"; | |||
/** | |||
* Magic property that makes unit tests based on BuildFileTest | |||
* or BuildFileRule ignore externally set basedir | |||
* (typically by Surefire/Failsafe) | |||
* | |||
* Value: {@value} | |||
* @since Ant 1.10.6 | |||
*/ | |||
public static final String TEST_BASEDIR_IGNORE = "ant.test.basedir.ignore"; | |||
/** | |||
* Magic property that makes unit tests based on BuildFileTest | |||
* or BuildFileRule use build files in alternative locations | |||
* (relative to "root" directory) | |||
* | |||
* Value: {@value} | |||
* @since Ant 1.10.6 | |||
*/ | |||
public static final String TEST_ROOT_DIRECTORY = "root"; | |||
/** | |||
* Property for ant process ID set in unit tests by BuildFileTest | |||
* or BuildFileRule. | |||
* | |||
* Value: {@value} | |||
*/ | |||
public static final String TEST_PROCESS_ID = "ant.processid"; | |||
/** | |||
* Property for ant thread name set in unit tests by BuildFileTest | |||
* or BuildFileRule. | |||
* | |||
* Value: {@value} | |||
*/ | |||
public static final String TEST_THREAD_NAME = "ant.threadname"; | |||
} | |||
@@ -21,6 +21,7 @@ package org.apache.tools.ant.taskdefs; | |||
import java.io.IOException; | |||
import org.apache.tools.ant.BuildException; | |||
import org.apache.tools.ant.MagicNames; | |||
import org.apache.tools.ant.Task; | |||
import org.apache.tools.ant.types.PropertySet; | |||
@@ -99,7 +100,7 @@ public class CallTarget extends Task { | |||
"Attribute target or at least one nested target is required.", | |||
getLocation()); | |||
} | |||
callee.setAntfile(getProject().getProperty("ant.file")); | |||
callee.setAntfile(getProject().getProperty(MagicNames.ANT_FILE)); | |||
callee.setInheritAll(inheritAll); | |||
callee.setInheritRefs(inheritRefs); | |||
callee.execute(); | |||
@@ -18,6 +18,7 @@ | |||
package org.apache.tools.ant.taskdefs.condition; | |||
import org.apache.tools.ant.BuildException; | |||
import org.apache.tools.ant.MagicNames; | |||
import org.apache.tools.ant.Project; | |||
import org.apache.tools.ant.Task; | |||
import org.apache.tools.ant.util.DeweyDecimal; | |||
@@ -104,7 +105,7 @@ public class AntVersion extends Task implements Condition { | |||
p.init(); | |||
StringBuilder sb = new StringBuilder(); | |||
boolean foundFirstDigit = false; | |||
for (char versionChar : p.getProperty("ant.version").toCharArray()) { | |||
for (char versionChar : p.getProperty(MagicNames.ANT_VERSION).toCharArray()) { | |||
if (Character.isDigit(versionChar)) { | |||
sb.append(versionChar); | |||
foundFirstDigit = true; | |||
@@ -153,11 +153,14 @@ public class BuildFileRule extends ExternalResource { | |||
logBuffer = new StringBuffer(); | |||
fullLogBuffer = new StringBuffer(); | |||
project = new Project(); | |||
if (Boolean.getBoolean(MagicNames.TEST_BASEDIR_IGNORE)) { | |||
System.clearProperty(MagicNames.PROJECT_BASEDIR); | |||
} | |||
project.init(); | |||
File antFile = new File(System.getProperty("root"), filename); | |||
project.setProperty("ant.processid", ProcessUtil.getProcessId("<Process>")); | |||
project.setProperty("ant.threadname", Thread.currentThread().getName()); | |||
project.setUserProperty("ant.file", antFile.getAbsolutePath()); | |||
File antFile = new File(System.getProperty(MagicNames.TEST_ROOT_DIRECTORY), filename); | |||
project.setProperty(MagicNames.TEST_PROCESS_ID, ProcessUtil.getProcessId("<Process>")); | |||
project.setProperty(MagicNames.TEST_THREAD_NAME, Thread.currentThread().getName()); | |||
project.setUserProperty(MagicNames.ANT_FILE, antFile.getAbsolutePath()); | |||
project.addBuildListener(new AntTestListener(logLevel)); | |||
ProjectHelper.configureProject(project, antFile); | |||
} | |||
@@ -327,12 +327,15 @@ public abstract class BuildFileTest extends TestCase { | |||
logBuffer = new StringBuffer(); | |||
fullLogBuffer = new StringBuffer(); | |||
project = new Project(); | |||
if (Boolean.getBoolean(MagicNames.TEST_BASEDIR_IGNORE)) { | |||
System.clearProperty(MagicNames.PROJECT_BASEDIR); | |||
} | |||
project.init(); | |||
File antFile = new File(System.getProperty("root"), filename); | |||
project.setUserProperty("ant.file", antFile.getAbsolutePath()); | |||
File antFile = new File(System.getProperty(MagicNames.TEST_ROOT_DIRECTORY), filename); | |||
project.setUserProperty(MagicNames.ANT_FILE, antFile.getAbsolutePath()); | |||
// set two new properties to allow to build unique names when running multithreaded tests | |||
project.setProperty("ant.processid", ProcessUtil.getProcessId("<Process>")); | |||
project.setProperty("ant.threadname", Thread.currentThread().getName()); | |||
project.setProperty(MagicNames.TEST_PROCESS_ID, ProcessUtil.getProcessId("<Process>")); | |||
project.setProperty(MagicNames.TEST_THREAD_NAME, Thread.currentThread().getName()); | |||
project.addBuildListener(new AntTestListener(logLevel)); | |||
ProjectHelper.configureProject(project, antFile); | |||
} | |||
@@ -28,6 +28,7 @@ import java.util.GregorianCalendar; | |||
import org.apache.tools.ant.BuildEvent; | |||
import org.apache.tools.ant.BuildFileRule; | |||
import org.apache.tools.ant.BuildListener; | |||
import org.apache.tools.ant.MagicNames; | |||
import org.apache.tools.ant.Project; | |||
import org.apache.tools.ant.ProjectHelper; | |||
import org.apache.tools.ant.util.FileUtils; | |||
@@ -66,7 +67,7 @@ public class ExecTaskTest { | |||
buildRule.getProject().executeTarget("setUp"); | |||
assumeNotNull(buildRule.getProject().getProperty("test.can.run")); | |||
MonitoredBuild myBuild = new MonitoredBuild(new File( | |||
buildRule.getProject().getProperty("ant.file")), "spawn"); | |||
buildRule.getProject().getProperty(MagicNames.ANT_FILE)), "spawn"); | |||
File logFile = FILE_UTILS.createTempFile("spawn", "log", | |||
new File(buildRule.getProject().getProperty("output")), false, false); | |||
// this is guaranteed by FileUtils#createTempFile | |||
@@ -131,7 +132,7 @@ public class ExecTaskTest { | |||
this.target = target; | |||
project = new Project(); | |||
project.init(); | |||
project.setUserProperty("ant.file", myBuildFile.getAbsolutePath()); | |||
project.setUserProperty(MagicNames.ANT_FILE, myBuildFile.getAbsolutePath()); | |||
ProjectHelper.configureProject(project, myBuildFile); | |||
} | |||
@@ -19,6 +19,8 @@ | |||
package org.apache.tools.ant.taskdefs; | |||
import java.io.File; | |||
import org.apache.tools.ant.MagicNames; | |||
import org.apache.tools.ant.Project; | |||
import org.apache.tools.ant.taskdefs.compilers.CompilerAdapter; | |||
import org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory; | |||
@@ -215,13 +217,13 @@ public class JavacTest { | |||
@Test | |||
public void testSourceWithDefault() { | |||
project.setNewProperty("ant.build.javac.source", "1.4"); | |||
project.setNewProperty(MagicNames.BUILD_JAVAC_SOURCE, "1.4"); | |||
assertEquals("1.4", javac.getSource()); | |||
} | |||
@Test | |||
public void testSourceOverridesDefault() { | |||
project.setNewProperty("ant.build.javac.source", "1.4"); | |||
project.setNewProperty(MagicNames.BUILD_JAVAC_SOURCE, "1.4"); | |||
javac.setSource("1.5"); | |||
assertEquals("1.5", javac.getSource()); | |||
} | |||
@@ -233,13 +235,13 @@ public class JavacTest { | |||
@Test | |||
public void testTargetWithDefault() { | |||
project.setNewProperty("ant.build.javac.target", "1.4"); | |||
project.setNewProperty(MagicNames.BUILD_JAVAC_TARGET, "1.4"); | |||
assertEquals("1.4", javac.getTarget()); | |||
} | |||
@Test | |||
public void testTargetOverridesDefault() { | |||
project.setNewProperty("ant.build.javac.target", "1.4"); | |||
project.setNewProperty(MagicNames.BUILD_JAVAC_TARGET, "1.4"); | |||
javac.setTarget("1.5"); | |||
assertEquals("1.5", javac.getTarget()); | |||
} | |||
@@ -49,8 +49,8 @@ public class CommandlineJavaTest { | |||
@Before | |||
public void setUp() { | |||
project = new Project(); | |||
if (System.getProperty("root") != null) { | |||
project.setBasedir(System.getProperty("root")); | |||
if (System.getProperty(MagicNames.TEST_ROOT_DIRECTORY) != null) { | |||
project.setBasedir(System.getProperty(MagicNames.TEST_ROOT_DIRECTORY)); | |||
} | |||
project.setProperty("build.sysclasspath", "ignore"); | |||
cloneVm = System.getProperty("ant.build.clonevm"); | |||
@@ -74,7 +74,7 @@ public class CommandlineJavaTest { | |||
*/ | |||
@Test | |||
public void testGetCommandline() throws CloneNotSupportedException { | |||
assertNotNull("Ant home not set", System.getProperty("ant.home")); | |||
assertNotNull("Ant home not set", System.getProperty(MagicNames.ANT_HOME)); | |||
c.createArgument().setValue("org.apache.tools.ant.CommandlineJavaTest"); | |||
c.setClassname("junit.textui.TestRunner"); | |||
c.createVmArgument().setValue("-Djava.compiler=NONE"); | |||
@@ -22,6 +22,7 @@ import java.io.File; | |||
import java.util.Locale; | |||
import org.apache.tools.ant.BuildException; | |||
import org.apache.tools.ant.MagicNames; | |||
import org.apache.tools.ant.Project; | |||
import org.apache.tools.ant.taskdefs.condition.Os; | |||
import org.junit.Before; | |||
@@ -52,8 +53,8 @@ public class PathTest { | |||
@Before | |||
public void setUp() { | |||
project = new Project(); | |||
if (System.getProperty("root") != null) { | |||
project.setBasedir(System.getProperty("root")); | |||
if (System.getProperty(MagicNames.TEST_ROOT_DIRECTORY) != null) { | |||
project.setBasedir(System.getProperty(MagicNames.TEST_ROOT_DIRECTORY)); | |||
} | |||
p = new Path(project); | |||
} | |||
@@ -28,6 +28,7 @@ import javax.xml.transform.TransformerException; | |||
import javax.xml.transform.sax.SAXSource; | |||
import org.apache.tools.ant.BuildException; | |||
import org.apache.tools.ant.MagicNames; | |||
import org.apache.tools.ant.Project; | |||
import org.apache.tools.ant.util.JAXPUtils; | |||
import org.junit.Before; | |||
@@ -68,8 +69,8 @@ public class XMLCatalogTest { | |||
@Before | |||
public void setUp() { | |||
project = new Project(); | |||
if (System.getProperty("root") != null) { | |||
project.setBasedir(System.getProperty("root")); | |||
if (System.getProperty(MagicNames.TEST_ROOT_DIRECTORY) != null) { | |||
project.setBasedir(System.getProperty(MagicNames.TEST_ROOT_DIRECTORY)); | |||
} | |||
// This causes XMLCatalog to print out detailed logging | |||
// messages for debugging | |||
@@ -20,6 +20,7 @@ package org.apache.tools.ant.types.resources; | |||
import java.io.File; | |||
import java.io.IOException; | |||
import org.apache.tools.ant.MagicNames; | |||
import org.apache.tools.ant.Project; | |||
import org.junit.Before; | |||
import org.junit.Test; | |||
@@ -36,8 +37,9 @@ public class FileResourceTest { | |||
@Before | |||
public void setUp() throws IOException { | |||
root = (System.getProperty("root") == null) ? new File(".").getCanonicalFile() | |||
: new File(System.getProperty("root")); | |||
root = (System.getProperty(MagicNames.TEST_ROOT_DIRECTORY) == null) | |||
? new File(".").getCanonicalFile() | |||
: new File(System.getProperty(MagicNames.TEST_ROOT_DIRECTORY)); | |||
} | |||
@Test | |||
@@ -27,6 +27,7 @@ import java.util.Iterator; | |||
import org.apache.tools.ant.BuildException; | |||
import org.apache.tools.ant.BuildFileRule; | |||
import org.apache.tools.ant.MagicNames; | |||
import org.apache.tools.ant.Project; | |||
import org.apache.tools.ant.Target; | |||
import org.apache.tools.ant.Task; | |||
@@ -147,7 +148,8 @@ public class ModifiedSelectorTest { | |||
@Test | |||
public void testCustomClasses() { | |||
assertNotNull("Ant home not set", selectorRule.getProject().getProperty("ant.home")); | |||
assertNotNull("Ant home not set", | |||
selectorRule.getProject().getProperty(MagicNames.ANT_HOME)); | |||
BFT bft = new BFT(); | |||
bft.setUp(); | |||
// don't catch the JUnit exceptions | |||
@@ -554,7 +556,8 @@ public class ModifiedSelectorTest { | |||
@Test | |||
public void testResourceSelectorScenarioSimple() { | |||
assertNotNull("Ant home not set", selectorRule.getProject().getProperty("ant.home")); | |||
assertNotNull("Ant home not set", | |||
selectorRule.getProject().getProperty(MagicNames.ANT_HOME)); | |||
BFT bft = new BFT(); | |||
bft.doTarget("modifiedselectortest-scenario-resourceSimple"); | |||
bft.doTarget("modifiedselectortest-scenario-clean"); | |||
@@ -774,19 +777,22 @@ public class ModifiedSelectorTest { | |||
@Test | |||
public void testScenarioCoreSelectorDefaults() { | |||
assertNotNull("Ant home not set", selectorRule.getProject().getProperty("ant.home")); | |||
assertNotNull("Ant home not set", | |||
selectorRule.getProject().getProperty(MagicNames.ANT_HOME)); | |||
doScenarioTest("modifiedselectortest-scenario-coreselector-defaults", "cache.properties"); | |||
} | |||
@Test | |||
public void testScenarioCoreSelectorSettings() { | |||
assertNotNull("Ant home not set", selectorRule.getProject().getProperty("ant.home")); | |||
assertNotNull("Ant home not set", | |||
selectorRule.getProject().getProperty(MagicNames.ANT_HOME)); | |||
doScenarioTest("modifiedselectortest-scenario-coreselector-settings", "core.cache.properties"); | |||
} | |||
@Test | |||
public void testScenarioCustomSelectorSettings() { | |||
assertNotNull("Ant home not set", selectorRule.getProject().getProperty("ant.home")); | |||
assertNotNull("Ant home not set", | |||
selectorRule.getProject().getProperty(MagicNames.ANT_HOME)); | |||
doScenarioTest("modifiedselectortest-scenario-customselector-settings", "core.cache.properties"); | |||
} | |||
@@ -45,7 +45,7 @@ public class OwnedBySelectorTest { | |||
private final String SELF = System.getProperty("user.name"); | |||
private final String ROOT = "root"; | |||
private final String ROOT_USER = "root"; | |||
private OwnedBySelector s; | |||
@@ -73,7 +73,7 @@ public class OwnedBySelectorTest { | |||
Path symbolicLink = Files.createSymbolicLink(target.toPath(), TEST_FILE.toPath()); | |||
UserPrincipal root = Files.getOwner(symbolicLink); | |||
assertEquals(ROOT, root.getName()); | |||
assertEquals(ROOT_USER, root.getName()); | |||
UserPrincipal user = Files.getOwner(symbolicLink, LinkOption.NOFOLLOW_LINKS); | |||
assertEquals(SELF, user.getName()); | |||
@@ -23,6 +23,7 @@ import java.io.FileOutputStream; | |||
import java.io.IOException; | |||
import org.apache.tools.ant.BuildException; | |||
import org.apache.tools.ant.MagicNames; | |||
import org.apache.tools.ant.taskdefs.condition.Os; | |||
import org.junit.After; | |||
import org.junit.Before; | |||
@@ -50,7 +51,7 @@ public class FileUtilsTest { | |||
public ExpectedException thrown = ExpectedException.none(); | |||
private static final FileUtils FILE_UTILS = FileUtils.getFileUtils(); | |||
private static final String ROOT = System.getProperty("root"); | |||
private static final String ROOT = System.getProperty(MagicNames.TEST_ROOT_DIRECTORY); | |||
private File removeThis; | |||
private String root; | |||
@@ -24,6 +24,7 @@ import java.io.IOException; | |||
import java.io.InputStreamReader; | |||
import java.util.Properties; | |||
import org.apache.tools.ant.MagicNames; | |||
import org.junit.Before; | |||
import org.junit.Test; | |||
@@ -35,7 +36,7 @@ import static org.junit.Assert.assertThat; | |||
public class LayoutPreservingPropertiesTest { | |||
private static final String ROOT = System.getProperty("root"); | |||
private static final String ROOT = System.getProperty(MagicNames.TEST_ROOT_DIRECTORY); | |||
private LayoutPreservingProperties lpf; | |||
@@ -17,6 +17,7 @@ | |||
*/ | |||
package org.apache.tools.ant.util; | |||
import org.apache.tools.ant.MagicNames; | |||
import org.junit.Test; | |||
import java.io.ByteArrayOutputStream; | |||
@@ -33,7 +34,7 @@ import static org.junit.Assert.assertEquals; | |||
*/ | |||
public class ReaderInputStreamTest { | |||
private static final String ROOT = System.getProperty("root"); | |||
private static final String ROOT = System.getProperty(MagicNames.TEST_ROOT_DIRECTORY); | |||
@Test | |||
public void testSimple() throws Exception { | |||