blob: c276c6cab3c0820cf4af4d764fe3ec241f17a4f4 [file] [log] [blame] [edit]
<?xml version="1.0" standalone='yes'?>
<!-- This Ant build file fragment contains targets needed
to run unit tests
-->
<project name="Jackson Unit tests" basedir=".">
<!-- Source directories -->
<property name="dir.src.test" location="${dir.src}/test" />
<!-- some support for perf testing -->
<property name="dir.build.classes.perf" location="${dir.build}/classes/perf" />
<!-- Unit Tests -->
<property name="dir.test" location="${basedir}/test" />
<property name="dir.test.classes" location="${dir.test}/classes" />
<property name="dir.test.results" location="${dir.test}/results" />
<property name="dir.test.xmlresults" location="${dir.test.results}/xml" />
<path id="test-libs">
<fileset dir="${dir.lib}">
<!-- for actual unit testing, junit -->
<include name="junit/*.jar" />
</fileset>
</path>
<!-- Libs only needed for tests that check optional interoperability
extensions
-->
<path id="test-libs-ext">
<fileset dir="${dir.lib}">
<!-- For 1.5, need JAXB API jar too (and related) -->
<include name="jaxb/*.jar" />
<!-- and some other misc libs for interoperability tests -->
<include name="ext/**/*.jar" />
</fileset>
</path>
<target name="test.prepare">
<!-- make test output directories -->
<mkdir dir="${dir.test}" />
<mkdir dir="${dir.test.classes}" />
<mkdir dir="${dir.test.results}" />
<mkdir dir="${dir.test.xmlresults}" />
</target>
<!--*********************************************************************-->
<!-- Tasks from here down are in support of junit tests. -->
<!--*********************************************************************-->
<target name="all-tests" depends="test" />
<!-- Compiling and running test cases
-->
<target name="test.compile" depends="test.prepare, compile.mapper,
compile.xc, compile.jaxrs, compile.smile, compile.mrbean">
<javac srcdir="${dir.src.test}" destdir="${dir.test.classes}"
source="1.5" target="1.5"
debug="true" includeantruntime="false"
>
<exclude name="org/codehaus/jackson/map/ext/*.java" />
<exclude name="org/codehaus/jackson/map/interop/*.java" />
<include name="**/*.java" />
<classpath>
<pathelement path="${dir.build.classes.core}"/>
<pathelement path="${dir.build.classes.mapper}"/>
<pathelement path="${dir.build.classes.jaxrs}"/>
<pathelement path="${dir.build.classes.xc}"/>
<pathelement path="${dir.build.classes.smile}"/>
<pathelement path="${dir.build.classes.mrbean}"/>
<path refid="test-libs"/>
<fileset dir="${dir.lib}/jaxrs">
<include name="*.jar" />
</fileset>
</classpath>
</javac>
<javac srcdir="${dir.src.test}" destdir="${dir.test.classes}"
source="1.5" target="1.5"
debug="true" includeantruntime="false"
>
<include name="org/codehaus/jackson/map/ext/*.java" />
<include name="org/codehaus/jackson/map/interop/*.java" />
<classpath>
<pathelement path="${dir.build.classes.core}"/>
<pathelement path="${dir.build.classes.mapper}"/>
<path refid="test-libs"/>
<path refid="test-libs-ext"/>
</classpath>
</javac>
</target>
<target name="test" depends="test.run">
<junitreport todir="${dir.test.results}">
<fileset dir="${dir.test.xmlresults}">
<include name="TEST-*.xml" />
</fileset>
<report todir="${dir.test.results}" />
</junitreport>
</target>
<target name="test.run" depends="test.run.main,
test.run.interop, test.run.jaxrs, test.run.failing, test.run.versions"
/>
<target name="test.run.main" depends="test.compile">
<!-- showoutput 'yes' to allow outputting debug msgs... -->
<junit fork="no" printsummary="yes" haltonfailure="no" showoutput="yes">
<batchtest fork="no" todir="${dir.test.xmlresults}">
<fileset dir="${dir.test.classes}">
<!-- Need to exclude inner classes... -->
<exclude name="**/*$*.class"/>
<!-- and also interop tests, run later on -->
<exclude name="org/codehaus/jackson/jaxrs/*.class"/>
<exclude name="org/codehaus/jackson/failing/*.class"/>
<exclude name="org/codehaus/jackson/map/ext/Test*.class"/>
<exclude name="org/codehaus/jackson/map/interop/Test*.class"/>
<exclude name="org/codehaus/jackson/version/*.class"/>
<include name="**/Test*.class"/>
</fileset>
</batchtest>
<formatter type="xml" />
<classpath>
<pathelement path="${dir.build.classes.core}" />
<pathelement path="${dir.build.classes.mapper}" />
<pathelement path="${dir.build.classes.xc}" />
<pathelement path="${dir.build.classes.smile}" />
<pathelement path="${dir.build.classes.mrbean}" />
<pathelement location="${dir.test.classes}" />
<path refid="test-libs"/>
</classpath>
</junit>
</target>
<target name="test.run.interop" depends="test.compile">
<!-- for interop tests, yes, we need to fork (classloading issues) -->
<junit fork="yes" printsummary="yes" haltonfailure="no" showoutput="yes">
<batchtest fork="no" todir="${dir.test.xmlresults}">
<fileset dir="${dir.test.classes}">
<exclude name="**/*$*.class"/>
<!-- 25-Nov-2009, tatu: Argh. Looks like classloading
is problematic for this test; works when run
separately as single test... but not in sequence
-->
<exclude name="org/codehaus/jackson/map/interop/TestHibernate.class"/>
<include name="org/codehaus/jackson/map/interop/Test*.class"/>
</fileset>
</batchtest>
<formatter type="xml" />
<classpath>
<pathelement path="${dir.build.classes.core}" />
<pathelement path="${dir.build.classes.mapper}" />
<pathelement location="${dir.test.classes}" />
<path refid="test-libs"/>
<path refid="test-libs-ext"/>
</classpath>
</junit>
</target>
<target name="test.run.jaxrs" depends="test.compile">
<!-- And finally, minimal testing for jax-rs too -->
<junit fork="yes" printsummary="yes" haltonfailure="no" showoutput="yes">
<batchtest fork="no" todir="${dir.test.xmlresults}">
<fileset dir="${dir.test.classes}">
<exclude name="**/*$*.class"/>
<include name="org/codehaus/jackson/jaxrs/*.class"/>
</fileset>
</batchtest>
<formatter type="xml" />
<classpath>
<pathelement path="${dir.build.classes.core}" />
<pathelement path="${dir.build.classes.mapper}" />
<pathelement path="${dir.build.classes.jaxrs}" />
<pathelement path="${dir.build.classes.xc}" />
<pathelement location="${dir.test.classes}" />
<path refid="test-libs"/>
<fileset dir="${dir.lib}/jaxrs">
<include name="*.jar" />
</fileset>
</classpath>
</junit>
</target>
<!-- failing tests run during dev, disabled for maintenance versions -->
<target name="test.run.failing" depends="test.compile">
<junit fork="no" printsummary="yes" haltonfailure="no" showoutput="yes">
<batchtest fork="no" todir="${dir.test.xmlresults}">
<fileset dir="${dir.test.classes}">
<exclude name="**/*$*.class"/>
<include name="org/codehaus/jackson/failing/Test*.class"/>
</fileset>
</batchtest>
<formatter type="xml" />
<classpath>
<pathelement path="${dir.build.classes.core}" />
<pathelement path="${dir.build.classes.mapper}" />
<pathelement path="${dir.build.classes.mrbean}" />
<pathelement path="${dir.build.classes.jaxrs}" />
<pathelement path="${dir.build.classes.xc}" />
<pathelement location="${dir.test.classes}" />
<path refid="test-libs"/>
<path refid="test-libs-ext"/>
<fileset dir="${dir.lib}/jaxrs">
<include name="*.jar" />
</fileset>
</classpath>
</junit>
</target>
<target name="test.run.versions" depends="test.compile">
<junit fork="yes" printsummary="yes" haltonfailure="no" showoutput="yes">
<sysproperty key="FROM_ANT" value="true"/>
<batchtest fork="no" todir="${dir.test.xmlresults}">
<fileset dir="${dir.test.classes}">
<include name="org/codehaus/jackson/version/*.class"/>
</fileset>
</batchtest>
<formatter type="xml" />
<classpath>
<pathelement path="${dir.build.classes.core}" />
<pathelement path="${dir.build.classes.mapper}" />
<pathelement path="${dir.build.classes.jaxrs}" />
<pathelement path="${dir.build.classes.xc}" />
<pathelement path="${dir.build.classes.mrbean}" />
<pathelement path="${dir.build.classes.smile}" />
<pathelement location="${dir.test.classes}" />
<path refid="test-libs"/>
<fileset dir="${dir.lib}/jaxrs">
<include name="*.jar" />
</fileset>
</classpath>
</junit>
</target>
<!-- Running a single Unit Test -->
<target name="test.single" depends="test.compile">
<fail unless="test" message="Must define -Dtest" />
<!-- showoutput 'yes' to allow outputting debug msgs... -->
<!-- 09-Apr-2010, tatu: Looks like we must fork, otherwise there may be
issues with junit version?
-->
<junit fork="yes" maxmemory="128M" showoutput="yes" printsummary="yes">
<sysproperty key="FROM_ANT" value="true"/>
<formatter type="plain" usefile="no" />
<test name="${test}" />
<classpath>
<pathelement path="${dir.build.classes.core}" />
<pathelement path="${dir.build.classes.mapper}" />
<pathelement path="${dir.build.classes.xc}" />
<pathelement path="${dir.build.classes.jaxrs}" />
<pathelement path="${dir.build.classes.smile}" />
<pathelement path="${dir.build.classes.mrbean}" />
<pathelement location="${dir.test.classes}" />
<path refid="test-libs"/>
<path refid="test-libs-ext"/>
<fileset dir="${dir.lib}/jaxrs">
<include name="*.jar" />
</fileset>
</classpath>
</junit>
</target>
</project>