| @@ -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> | |||