|
|
@@ -1,158 +0,0 @@ |
|
|
|
<?xml version="1.0"?> |
|
|
|
<!-- |
|
|
|
Licensed to the Apache Software Foundation (ASF) under one or more |
|
|
|
contributor license agreements. See the NOTICE file distributed with |
|
|
|
this work for additional information regarding copyright ownership. |
|
|
|
The ASF licenses this file to You under the Apache License, Version 2.0 |
|
|
|
(the "License"); you may not use this file except in compliance with |
|
|
|
the License. You may obtain a copy of the License at |
|
|
|
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0 |
|
|
|
|
|
|
|
Unless required by applicable law or agreed to in writing, software |
|
|
|
distributed under the License is distributed on an "AS IS" BASIS, |
|
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
|
|
See the License for the specific language governing permissions and |
|
|
|
limitations under the License. |
|
|
|
--> |
|
|
|
<project default="antunit" xmlns:au="antlib:org.apache.ant.antunit"> |
|
|
|
<import file="../antunit-base.xml" /> |
|
|
|
<!-- apt tests --> |
|
|
|
|
|
|
|
<property name="build.dir" location="aptbuild" /> |
|
|
|
<property name="classes.dir" location="${build.dir}/classes" /> |
|
|
|
<property name="classes2.dir" location="${build.dir}/classes2" /> |
|
|
|
<property name="preprocess.dir" location="${build.dir}/source" /> |
|
|
|
<property name="src" location="apt" /> |
|
|
|
|
|
|
|
<property name="AptExample.class" location="${classes.dir}/AptExample.class" /> |
|
|
|
|
|
|
|
<macrodef name="assertCompiled"> |
|
|
|
<attribute name="file" /> |
|
|
|
<sequential > |
|
|
|
<fail message="not found: @{file}"> |
|
|
|
<condition> |
|
|
|
<not> |
|
|
|
<available file="@{file}" /> |
|
|
|
</not> |
|
|
|
</condition> |
|
|
|
</fail> |
|
|
|
</sequential> |
|
|
|
</macrodef> |
|
|
|
|
|
|
|
<macrodef name="assertProcessed"> |
|
|
|
<sequential> |
|
|
|
<au:assertLogContains text="DistributedAnnotationProcessor-is-go"/> |
|
|
|
<au:assertLogContains text="[-Abuild.dir="/> |
|
|
|
<au:assertLogContains text="visiting DistributedAnnotationFactory"/> |
|
|
|
</sequential> |
|
|
|
</macrodef> |
|
|
|
|
|
|
|
<presetdef name="assertAptExampleCompiled"> |
|
|
|
<assertCompiled file="${AptExample.class}"/> |
|
|
|
</presetdef> |
|
|
|
|
|
|
|
<target name="tearDown" depends="antunit-base.tearDown"> |
|
|
|
<delete dir="${build.dir}"/> |
|
|
|
</target> |
|
|
|
|
|
|
|
<target name="setUp"> |
|
|
|
<mkdir dir="${classes.dir}"/> |
|
|
|
<mkdir dir="${classes2.dir}"/> |
|
|
|
<mkdir dir="${preprocess.dir}"/> |
|
|
|
</target> |
|
|
|
|
|
|
|
<target name="testApt" depends="setUp" unless="jdk1.8+"> |
|
|
|
<apt srcdir="${src}" |
|
|
|
destdir="${classes.dir}" |
|
|
|
debug="on" |
|
|
|
compile="true" |
|
|
|
preprocessdir="${preprocess.dir}"> |
|
|
|
</apt> |
|
|
|
<assertAptExampleCompiled /> |
|
|
|
</target> |
|
|
|
|
|
|
|
<target name="testAptFork" depends="setUp" unless="jdk1.8+"> |
|
|
|
<apt srcdir="${src}" |
|
|
|
destdir="${classes.dir}" |
|
|
|
debug="on" |
|
|
|
compile="true" |
|
|
|
fork="true" |
|
|
|
preprocessdir="${preprocess.dir}"> |
|
|
|
</apt> |
|
|
|
<assertAptExampleCompiled /> |
|
|
|
</target> |
|
|
|
|
|
|
|
<target name="testAptForkFalse" depends="setUp" unless="jdk1.8+"> |
|
|
|
<apt srcdir="${src}" |
|
|
|
destdir="${classes.dir}" |
|
|
|
debug="on" |
|
|
|
compile="true" |
|
|
|
fork="false" |
|
|
|
preprocessdir="${preprocess.dir}"> |
|
|
|
</apt> |
|
|
|
<assertAptExampleCompiled /> |
|
|
|
<au:assertLogContains text="Apt only runs in its own JVM; fork=false option ignored"/> |
|
|
|
|
|
|
|
</target> |
|
|
|
|
|
|
|
<target name="testListAnnotationTypes" depends="setUp" unless="jdk1.8+"> |
|
|
|
<apt srcdir="${src}" |
|
|
|
destdir="${classes.dir}" |
|
|
|
debug="on" |
|
|
|
compile="true" |
|
|
|
preprocessdir="${preprocess.dir}"> |
|
|
|
<compilerarg value="-XListAnnotationTypes" /> |
|
|
|
<compilerarg value="-Xlint:deprecation" /> |
|
|
|
</apt> |
|
|
|
|
|
|
|
<assertAptExampleCompiled /> |
|
|
|
<au:assertLogContains text="Set of annotations found:"/> |
|
|
|
<au:assertLogContains text="Distributed"/> |
|
|
|
</target> |
|
|
|
|
|
|
|
|
|
|
|
<!-- use the factory we compiled. To avoid trouble |
|
|
|
we deliver into a version in a new classpath, otherwise |
|
|
|
the dependency logic will not run Apt--> |
|
|
|
<target name="testAptNewFactory" depends="testApt" unless="jdk1.8+"> |
|
|
|
<apt srcdir="${src}" |
|
|
|
destdir="${classes2.dir}" |
|
|
|
debug="on" |
|
|
|
compile="true" |
|
|
|
factory="DistributedAnnotationFactory" |
|
|
|
preprocessdir="${preprocess.dir}"> |
|
|
|
<factorypath path="${classes.dir}" /> |
|
|
|
<option name="build.dir" value="${build.dir}" /> |
|
|
|
</apt> |
|
|
|
<assertAptExampleCompiled /> |
|
|
|
<assertProcessed /> |
|
|
|
</target> |
|
|
|
|
|
|
|
<target name="testAptNewFactoryFork" depends="testApt" unless="jdk1.8+"> |
|
|
|
<apt srcdir="${src}" |
|
|
|
destdir="${classes2.dir}" |
|
|
|
debug="on" |
|
|
|
compile="true" |
|
|
|
fork="true" |
|
|
|
factory="DistributedAnnotationFactory" |
|
|
|
preprocessdir="${preprocess.dir}"> |
|
|
|
<factorypath path="${classes.dir}" /> |
|
|
|
<option name="build.dir" value="${build.dir}" /> |
|
|
|
</apt> |
|
|
|
<assertAptExampleCompiled /> |
|
|
|
<assertProcessed /> |
|
|
|
</target> |
|
|
|
|
|
|
|
<target name="testAptUnderJDK18" if="jdk1.8+"> |
|
|
|
<au:expectfailure expectedMessage="apt does not exist under Java 1.8 and higher"> |
|
|
|
<apt srcdir="${src}" |
|
|
|
destdir="${classes.dir}" |
|
|
|
debug="on" |
|
|
|
compile="true" |
|
|
|
fork="true" |
|
|
|
preprocessdir="${preprocess.dir}"> |
|
|
|
</apt> |
|
|
|
</au:expectfailure> |
|
|
|
</target> |
|
|
|
</project> |