antoine 2003/07/30 08:25:51
Modified: src/etc/testcases/taskdefs java.xml
src/testcases/org/apache/tools/ant/taskdefs JavaTest.java
Log:
TestCase fixed, works now also on nagoya (Solaris).
The problem was that I did not allow enough time for java to start.
1 second is OK, 400 millis were not enough.
Revision Changes Path
1.7 +7 -2 ant/src/etc/testcases/taskdefs/java.xml
Index: java.xml
===================================================================
RCS file: /home/cvs/ant/src/etc/testcases/taskdefs/java.xml,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- java.xml 30 Jul 2003 13:56:06 -0000 1.6
+++ java.xml 30 Jul 2003 15:25:51 -0000 1.7
@@ -1,7 +1,10 @@
<?xml version="1.0"?>
<project name="java-test" basedir="." default="foo">
-
+ <!-- this property gets overridden programmatically-->
+ <property name="timeToWait" value="4"/>
+ <!-- this property gets overridden programmatically-->
+ <property name="logFile" value="spawn.log"/>
<property name="app"
value="org.apache.tools.ant.taskdefs.JavaTest$$EntryPoint" />
@@ -119,6 +122,8 @@
<arg value="${logFile}" />
</java>
</target>
-
+ <target name="cleanup">
+ <delete file="${logFile}"/>
+ </target>
<target name="foo" />
</project>
1.12 +42 -31
ant/src/testcases/org/apache/tools/ant/taskdefs/JavaTest.java
Index: JavaTest.java
===================================================================
RCS file:
/home/cvs/ant/src/testcases/org/apache/tools/ant/taskdefs/JavaTest.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- JavaTest.java 30 Jul 2003 13:56:06 -0000 1.11
+++ JavaTest.java 30 Jul 2003 15:25:51 -0000 1.12
@@ -62,26 +62,30 @@
/**
* stress out java task
* @author steve loughran
- * @author <a href="mailto:[EMAIL PROTECTED]">Stephane Bailliez</a>
+ * @author <a href="mailto:[EMAIL PROTECTED]">Stephane Bailliez</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Donal Quinlan</a>
* */
public class JavaTest extends BuildFileTest {
private static final int TIME_TO_WAIT = 4;
+ // wait 1 second extra to allow for java to start ...
+ // this time was OK on a Win NT machine and on nagoya
+ private static final int SECURITY_MARGIN = 1000;
+
private boolean runFatalTests=false;
-
- public JavaTest(String name) {
+
+ public JavaTest(String name) {
super(name);
- }
-
+ }
+
/**
- * configure the project.
+ * configure the project.
* if the property junit.run.fatal.tests is set we run
* the fatal tests
*/
- public void setUp() {
+ public void setUp() {
configureProject("src/etc/testcases/taskdefs/java.xml");
-
+
//final String propname="tests-classpath.value";
//String testClasspath=System.getProperty(propname);
//System.out.println("Test cp="+testClasspath);
@@ -92,28 +96,30 @@
}
public void tearDown() {
+ // remove log file from testSpawn
+ project.executeTarget("cleanup");
}
public void testNoJarNoClassname(){
expectBuildExceptionContaining("testNoJarNoClassname",
"parameter validation",
- "Classname must not be null.");
+ "Classname must not be null.");
}
public void testJarNoFork() {
expectBuildExceptionContaining("testJarNoFork",
"parameter validation",
- "Cannot execute a jar in non-forked mode. "
- + "Please set fork='true'. ");
+ "Cannot execute a jar in non-forked mode. "
+ + "Please set fork='true'. ");
}
-
- public void testJarAndClassName() {
+
+ public void testJarAndClassName() {
expectBuildException("testJarAndClassName",
"Should not be able to set both classname AND jar");
}
-
- public void testClassnameAndJar() {
+
+ public void testClassnameAndJar() {
expectBuildException("testClassnameAndJar",
"Should not be able to set both classname AND jar");
}
@@ -121,7 +127,7 @@
public void testRun() {
executeTarget("testRun");
}
-
+
/** this test fails but we ignore the return value;
@@ -132,7 +138,7 @@
executeTarget("testRunFail");
}
}
-
+
public void testRunFailFoe() {
if(runFatalTests) {
expectBuildExceptionContaining("testRunFailFoe",
@@ -148,32 +154,32 @@
}
public void testExcepting() {
- expectLogContaining("testExcepting",
+ expectLogContaining("testExcepting",
"Exception raised inside called program");
}
-
+
public void testExceptingFork() {
- expectLogContaining("testExceptingFork",
+ expectLogContaining("testExceptingFork",
"Java Result:");
}
-
+
public void testExceptingFoe() {
expectBuildExceptionContaining("testExceptingFoe",
"passes exception through",
"Exception raised inside called program");
}
-
+
public void testExceptingFoeFork() {
expectBuildExceptionContaining("testExceptingFoeFork",
"exceptions turned into error codes",
- "Java returned:");
- }
-
+ "Java returned:");
+ }
+
public void testResultPropertyZero() {
executeTarget("testResultPropertyZero");
assertEquals("0",project.getProperty("exitcode"));
}
-
+
public void testResultPropertyNonZero() {
executeTarget("testResultPropertyNonZero");
assertEquals("-1",project.getProperty("exitcode"));
@@ -188,10 +194,15 @@
project.setProperty("timeToWait", Long.toString(TIME_TO_WAIT));
project.executeTarget("testSpawn");
try {
- Thread.sleep(TIME_TO_WAIT * 1000 + 400);
+ Thread.sleep(TIME_TO_WAIT * 1000 + SECURITY_MARGIN);
} catch (Exception ex) {
System.out.println("my sleep was interrupted");
}
+ // let's be nice with the next generation of developers
+ if (!logFile.exists()) {
+ System.out.println("suggestion: increase the constant"
+ + " SECURITY_MARGIN to give more time for java to start.");
+ }
assertTrue("log file exists", logFile.exists());
}
@@ -200,7 +211,7 @@
* than normal JRE runtime
*/
public static class EntryPoint {
-
+
/**
* this entry point is used by the java.xml tests to
* generate failure strings to handle
@@ -228,15 +239,15 @@
}
}
}
-
+
/**
* entry point class with no dependencies other
* than normal JRE runtime
*/
public static class ExceptingEntryPoint {
-
+
/**
- * throw a run time exception which does not need
+ * throw a run time exception which does not need
* to be in the signature of the entry point
*/
public static void main(String[] argv) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]