summaryrefslogtreecommitdiff
path: root/src/etc/testcases
diff options
context:
space:
mode:
authorJaikiran Pai <jaikiran@apache.org>2018-07-04 17:19:11 +0530
committerJaikiran Pai <jaikiran@apache.org>2018-07-04 17:20:38 +0530
commitc05c56df68b9f89e0e3de9bc3f6097837fe0f9e3 (patch)
tree9f15553e82dae8695def8b7ffd3175878b92a095 /src/etc/testcases
parentca9942f43db07c023bc17a93b489e1933f889c9a (diff)
downloadant-c05c56df68b9f89e0e3de9bc3f6097837fe0f9e3.tar.gz
Enhance the Java task to allow single file source program execution, a feature, introduced in Java 11
Diffstat (limited to 'src/etc/testcases')
-rw-r--r--src/etc/testcases/taskdefs/java.xml64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/etc/testcases/taskdefs/java.xml b/src/etc/testcases/taskdefs/java.xml
index 022a10f33..720959a38 100644
--- a/src/etc/testcases/taskdefs/java.xml
+++ b/src/etc/testcases/taskdefs/java.xml
@@ -417,4 +417,68 @@ redirect.err=&quot;${redirect.err}&quot; should be empty</fail>
<target name="foo"/>
+ <target name="simpleSourceFile"
+ description="Tests that the single source file programs, introduced in Java 11, works as expected">
+ <mkdir dir="${output}/javasource"/>
+ <echo file="/tmp/foo.txt" message="${output}"/>
+ <echo file="${output}/javasource/A.java">
+ import java.nio.file.Files;
+ import java.nio.file.Paths;
+ import java.io.BufferedWriter;
+ public class A {
+ public static void main(String[] args) throws Exception {
+ final String outFile = args[0];
+ try(BufferedWriter bw = Files.newBufferedWriter(Paths.get(outFile));) {
+ bw.write("Hello world!");
+ }
+ }
+ }
+ </echo>
+ <java sourcefile="${output}/javasource/A.java" fork="true" failonerror="true" logerror="true">
+ <arg value="${output}/javasource/simpleSourceFileOutput.txt"/>
+ </java>
+ <loadfile property="simpleSourceFile.prog.output" srcfile="${output}/javasource/simpleSourceFileOutput.txt"/>
+ <condition property="simpleSourceFile.execution.success">
+ <equals arg1="${simpleSourceFile.prog.output}" arg2="Hello world!"/>
+ </condition>
+ <fail unless="simpleSourceFile.execution.success">Java source-file execution did not yield the expected
+ result</fail>
+ </target>
+
+
+ <target name="generateDummyJavaSource">
+ <mkdir dir="${output}/javasource"/>
+ <echo file="/tmp/foo.txt" message="${output}"/>
+ <echo file="${output}/javasource/ThrowsException.java">
+ public class ThrowsException {
+ public static void main(String[] args) throws Exception {
+ throw new RuntimeException("Wasn't expected to be run");
+ }
+ }
+ </echo>
+ </target>
+
+ <target name="sourceFileRequiresFork" depends="generateDummyJavaSource">
+ <java sourcefile="${output}/javasource/ThrowsException.java" failonerror="true" logerror="true"/>
+ <fail>Execution of java task, for sourcefile, was expected to fail since fork wasn't set</fail>
+ </target>
+
+ <target name="sourceFileCantUseClassname" depends="generateDummyJavaSource">
+ <java classname="foo.bar" sourcefile="${output}/javasource/ThrowsException.java"
+ fork="true" failonerror="true" logerror="true"/>
+ <fail>Execution of java task, for sourcefile, was expected to fail since classname attribute was set</fail>
+ </target>
+
+ <target name="sourceFileCantUseJar" depends="generateDummyJavaSource">
+ <java jar="irrelevant.jar" sourcefile="${output}/javasource/ThrowsException.java"
+ fork="true" failonerror="true" logerror="true"/>
+ <fail>Execution of java task, for sourcefile, was expected to fail since jar attribute was set</fail>
+ </target>
+
+ <target name="sourceFileCantUseModule" depends="generateDummyJavaSource">
+ <java module="irrelevant" sourcefile="${output}/javasource/ThrowsException.java"
+ fork="true" failonerror="true" logerror="true"/>
+ <fail>Execution of java task, for sourcefile, was expected to fail since module attribute was set</fail>
+ </target>
+
</project>