blob: d0e86bac9bc73b48ca2d399f523317938cdd0ff8 [file] [log] [blame]
<?xml version="1.0"?>
<project name="tck" default="default">
<!-- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -->
<!-- compile settings -->
<!-- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -->
<property name="build.debug" value="on"/>
<!-- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -->
<!-- directories -->
<!-- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -->
<property name="src.dir" value="src"/>
<property name="build.dir" value="build"/>
<property name="build.classes.dir" value="${build.dir}/classes"/>
<property name="dist.dir" value="dist"/>
<property name="lib.dir" value="lib"/>
<property name="standalone.working.dir" value="temp"/>
<property name="standalone.dir" value="standalone"/>
<!-- javadoc properties -->
<property name="javadoc.dir" value="doc"/>
<property name="javadoc.packages" value="org.codehaus.groovy.*"/>
<!-- junit properties -->
<property name="junit.style.dir" value="styles"/>
<property name="testcase.src.dir" value="test"/>
<property name="generated.test.src.dir" value="gentest"/>
<property name="test.lib.dir" value="testlib"/>
<property name="test.classes.dir" value="${build.dir}/test/classes"/>
<property name="test.reports.dir" value="reports"/>
<!-- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -->
<!-- datatypes -->
<!-- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -->
<path id="compile.classpath">
<pathelement location="${build.classes.dir}"/>
<fileset dir="${lib.dir}">
<include name="**/*.jar" />
<include name="**/*.zip" />
</fileset>
<!-- TODO limit exposure to JSR parser during compliation (needed by TestGeneratorHelper classes)-->
<fileset dir="${test.lib.dir}">
<include name="**/*.jar"/>
</fileset>
</path>
<!-- intentionally doesn't include the compile classpath -->
<path id="test.classpath">
<pathelement location="${test.classes.dir}"/>
<fileset dir="${test.lib.dir}">
<include name="**/*.jar"/>
</fileset>
<!-- TODO limit exposure to TCK helper classes -->
<pathelement location="${build.classes.dir}"/>
</path>
<path id="my.classpath">
<fileset dir="${standalone.dir}">
<include name="**/*.jar" />
</fileset>
</path>
<taskdef name="groovyc" classname="org.codehaus.groovy.ant.Groovyc" classpathref="compile.classpath"/>
<!-- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -->
<!-- targets -->
<!-- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -->
<target name="default"
depends="pretty-test"
description="default: run the groovy test suite"
/>
<target name="all"
depends="test,dist"
description="build and test everything"
/>
<target name="clean" description="remove all built files">
<delete dir="${javadoc.dir}" />
<delete dir="${build.dir}" />
<delete dir="${dist.dir}" />
<delete dir="${generated.test.src.dir}" />
<delete dir="${standalone.dir}" />
<delete dir="${standalone.working.dir}" />
<delete dir="${test.reports.dir}" />
</target>
<target name="dist"
depends="compile"
description="create distributables (jars etc)">
<mkdir dir="${dist.dir}" />
<jar jarfile="${dist.dir}/tck.jar"
manifest="${src.dir}/manifest.txt">
<fileset dir="${build.classes.dir}"/>
</jar>
</target>
<target name="standalone" depends="dist" description="merge all jars together">
<mkdir dir="${standalone.working.dir}"/>
<unzip dest="${standalone.working.dir}">
<fileset dir="${lib.dir}">
<include name="*.jar"/>
</fileset>
<fileset dir="${dist.dir}">
<include name="*.jar"/>
</fileset>
</unzip>
<mkdir dir="${standalone.dir}"/>
<jar jarfile="${standalone.dir}/tck.jar"
manifest="${src.dir}/manifest.txt">
<fileset dir="${standalone.working.dir}"/>
</jar>
<!--<delete dir="${standalone.working.dir}"/>-->
</target>
<target name="docs" depends="init" description="generate documentation">
<mkdir dir="${javadoc.dir}" />
<javadoc sourcepath="${src.dir}"
destdir="${javadoc.dir}"
packagenames="${javadoc.packages}"
use="true"
windowtitle="tck"
private="true"/>
</target>
<target name="run" depends="compile" description="compile and run">
<java classname="org.codehaus.groovy.tck.GenerateTestCases"
fork="yes"
classpathref="compile.classpath"/>
</target>
<target name="test"
depends="test-compile"
description="run all test cases">
<junit haltonfailure="true" fork="yes">
<classpath refid="test.classpath"/>
<formatter type="plain" usefile="false"/>
<batchtest>
<fileset dir="${test.classes.dir}">
<include name="**/*Test.class" />
</fileset>
</batchtest>
</junit>
</target>
<target name="pretty-test"
depends="test-compile"
description="HTML output of test cases">
<mkdir dir="${test.reports.dir}"/>
<junit haltonfailure="false" fork="yes">
<classpath refid="test.classpath"/>
<formatter type="xml" usefile="true"/>
<batchtest todir="${test.reports.dir}">
<fileset dir="${test.classes.dir}">
<include name="**/*Test.class" />
</fileset>
</batchtest>
</junit>
<junitreport todir="${test.reports.dir}">
<fileset dir="${test.reports.dir}">
<include name="TEST-*.xml"/>
</fileset>
<report format="frames" styledir="${junit.style.dir}" todir="${test.reports.dir}"/>
</junitreport>
<echo>
+-------------------------+
| open reports/index.html |
+-------------------------+
</echo>
</target>
<target name="compile" depends="init" description="compile java and groovy sources">
<mkdir dir="${build.classes.dir}" />
<groovyc destdir="${build.classes.dir}"
srcdir="${src.dir}"
listfiles="true">
<classpath refid="test.classpath"/>
</groovyc>
<javac srcdir="${src.dir}"
destdir="${build.classes.dir}"
classpathref="compile.classpath"
debug="${build.debug}"
deprecation="on"/>
</target>
<target name="generate" depends="standalone" description="generate test cases">
<mkdir dir="${generated.test.src.dir}" />
<taskdef name="gentests" classname="org.codehaus.groovy.tck.GenerateTestCases" classpathref="my.classpath"/>
<gentests destdir="${generated.test.src.dir}"
srcdir="${testcase.src.dir}"
listfiles="true"/>
</target>
<target name="test-compile" depends="generate" description="compile tests">
<mkdir dir="${test.classes.dir}" />
<javac srcdir="${generated.test.src.dir}"
destdir="${test.classes.dir}"
classpathref="test.classpath"
debug="${build.debug}"
deprecation="on">
</javac>
</target>
<target name="init">
<tstamp />
<mkdir dir="${lib.dir}"/>
</target>
</project>