1 <?xml version="1.0" encoding="UTF-8"?>
2 <project name="Build Script" default="test" basedir=".">
7 <target name="compile" depends="build"/>
8 <target name="build" depends="-libraries">
9 <antcall target="-build-one">
10 <param name="version" value="api1.0"/>
12 <antcall target="-build-one">
13 <param name="version" value="api2.0"/>
15 <antcall target="-build-one">
16 <param name="version" value="api3.0"/>
19 <antcall target="-build-one">
20 <param name="version" value="test"/>
21 <param name="cp" value="build/api1.0/classes:${junit.jar}"/>
24 <antcall target="-build-one">
25 <param name="version" value="test2.0"/>
26 <param name="cp" value="build/api2.0/classes:build/test/classes:${junit.jar}"/>
28 <antcall target="-build-one">
29 <param name="version" value="test3.0"/>
30 <param name="cp" value="build/api3.0/classes:build/test/classes:build/test2.0/classes:${junit.jar}"/>
34 <target name="test" depends="build">
35 <echo level="info" message="PrintVisitor on old API. This should succeeds."/>
36 <antcall target="-run-one">
37 <param name="version" value="api1.0"/>
39 <echo level="info" message="PrintVisitor on old API. This would not compile, but it runs as it does not deal with minus at all."/>
40 <antcall target="-run-one">
41 <param name="version" value="api2.0"/>
43 <echo level="info" message="PrintVisitor on new API. This yields runtime error."/>
44 <antcall target="-run-one">
45 <param name="test" value="test2.0"/>
46 <param name="extra.cp" value="build/test/classes"/>
47 <param name="version" value="api2.0"/>
49 <echo level="info" message="Using old Number with new visitors"/>
50 <antcall target="-run-one">
51 <param name="test" value="test3.0"/>
52 <param name="extra.cp" value="build/test/classes:build/test2.0/classes:"/>
53 <param name="version" value="api3.0"/>
57 <!-- support methods -->
59 <target name="-libraries">
60 <ant dir="../../libs/"/>
62 <property name="junit.jar" location="../../libs/dist/junit-4.4.jar"/>
65 <target name="-run-one">
66 <fail message="You need to specify API version number" unless="version"/>
67 <property name="test" value="test"/>
68 <mkdir dir="build/${test}results${version}"/>
69 <junit dir="build/test/classes" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true">
70 <batchtest todir="build/${test}results${version}">
71 <fileset dir="build/${test}/classes">
72 <filename name="**/*Test.class"/>
76 <path location="build/${version}/classes"/>
77 <path location="build/${test}/classes"/>
78 <path location="${junit.jar}"/>
79 <path path="${extra.cp}"/>
82 <propertyref prefix="test-sys-prop."/>
83 <mapper from="test-sys-prop.*" to="*" type="glob"/>
85 <formatter type="brief" usefile="false"/>
86 <formatter type="xml"/>
90 <target name="-build-one">
91 <fail message="You need to specify version number" unless="version"/>
93 <property name="cp" value=""/>
94 <property name="out" value="${version}"/>
95 <property name="failonerror" value="true"/>
96 <mkdir dir="build/${out}/classes"/>
98 srcdir="src-${version}"
99 destdir="build/${out}/classes"
100 source="1.5" target="1.5"
102 failonerror="${failonerror}"