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