1<project name="CLDR Unit Tests" default="all" basedir="."> 2 <target name="init"> 3 <!-- copied from cldr/tools/java's build.xml --> 4 <tstamp /> 5 <property name="src.dir" value="src" /> 6 <!-- <property name="libs.dir" value="WebContent/WEB-INF/lib"/> --> 7 8 <property name="build.dir" value="build/classes" /> 9 <property name="log.dir" value="build/logs" /> 10 <property name="cldr.unittest.log" value="${log.dir}/unittest.log" /> 11 <property name="cldr.unittest.result" value="${log.dir}/unittest.result" /> 12 <property name="cldr.datacheck.log" value="${log.dir}/datacheck.log" /> 13 <property name="cldr.datacheck.result" value="${log.dir}/datacheck.result" /> 14 <property name="jar.file" value="cldr-unittest.jar" /> 15 <property name="libs.dir" value="libs" /> 16 <property name="jarSrc.file" value="cldr-unittest-src.jar" /> 17 <property name="jarDocs.file" value="cldr-unittest-docs.jar" /> 18 <property name="doc.dir" value="doc" /> 19 <property name="doc.params" value="" /> 20 21 <!-- Load local definitions from an optional properties file, if 22 available. build.properties is NOT checked into SVN. --> 23 <property file="build.properties" /> 24 <!-- Load environment variables --> 25 <property environment="env" /> 26 27 28 <!-- CLDR_TOOLS defaults to ../java, override if not correct. --> 29 <property name="CLDR_TOOLS" value="../java" /> 30 <property name="CLDR_DIR" value="../../common/.." /> 31 <property name="CLDR_JAR" value="${CLDR_TOOLS}/cldr.jar" /> 32 <property file="${CLDR_TOOLS}/cldr-tools.properties" /> 33 <property name="JVM_OPTIONS" 34 value="-DCLDR_DIR=${CLDR_DIR} -DDEBUG=false -Dverbose=false" /> 35 <!-- JVM_EXTRA_OPTIONS might be resolved in the next priority order: 36 1) System property JVM_EXTRA_OPTIONS specified by ant command arg: ant -DJVM_EXTRA_OPTIONS=xxx <target> 37 2) JVM_EXTRA_OPTIONS=xxx in build.properties 38 3) Environment variable - JVM_EXTRA_OPTIONS=xxx 39 4) Final fallback - "-Xmx6g" below --> 40 <property name="env.JVM_EXTRA_OPTIONS" value="-Xmx6g" /> 41 <property name="JVM_EXTRA_OPTIONS" value="${env.JVM_EXTRA_OPTIONS}" /> 42 <property name="jvm_options" value="${JVM_OPTIONS} ${JVM_EXTRA_OPTIONS}" /> 43 44 <path id="project.class.path"> 45 <pathelement path="${java.class.path}/" /> 46 <pathelement path="${build.dir}" /> 47 <fileset dir="${libs.dir}"> 48 <include name="**/*.jar" /> 49 </fileset> 50 <pathelement path="${CLDR_TOOLS}/classes" /> 51 <fileset dir="${CLDR_TOOLS}/libs" includes="*.jar" /> <!-- all libs --> 52 </path> 53 </target> 54 55 <target name="clean" depends="init" description="remove all build targets"> 56 <delete dir="${build.dir}" /> 57 <delete file="${cldr.unittest.log}" /> 58 <delete file="${cldr.datacheck.log}" /> 59 <delete dir="${log.dir}" /> 60 <delete dir="build" /> 61 <delete file="${jar.file}" /> 62 <delete file="${jarSrc.file}" /> 63 <delete file="${jarDocs.file}" /> 64 <delete dir="${doc.dir}" /> 65 </target> 66 67 <target name="jar" depends="build" 68 description="build full cldr-unittest.jar' jar file"> 69 <jar jarfile="${jar.file}" compress="true" 70 includes="org/unicode/cldr/unittest/**/*" basedir="${build.dir}" /> 71 </target> 72 <target name="tests" depends="build" /> 73 <target name="all" depends="build" /> 74 <!-- Docs stuff --> 75 <!-- use excludefiles below when we move to ant 1.5 --> 76 <target name="docs-jar" depends="docs"> 77 <jar jarfile="${jarDocs.file}" compress="true" includes="**/*" 78 basedir="${doc.dir}" /> 79 </target> 80 <target name="docs" depends="init" description="build user javadoc"> 81 <tstamp> 82 <format property="current.year" pattern="yyyy" /> 83 </tstamp> 84 <echo message="doc params: ${doc.params}" /> 85 <mkdir dir="${doc.dir}" /> 86 <javadoc packagenames="org.unicode.cldr.*" sourcepath="${src.dir}" 87 destdir="${doc.dir}" classpathref="project.class.path" 88 nodeprecatedlist="true" windowtitle="CLDR | Java Unittest" doctitle="CLDR | Java Unittest" 89 encoding="utf-8" docencoding="utf-8" additionalparam="${doc.params}" 90 link="http://docs.oracle.com/javase/7/docs/api" 91 bottom="<font size=-1><a target='_top' href='http://www.unicode.org/copyright.html'>Copyright &copy; 2004-${current.year} Unicode, Inc. All Rights Reserved.</a></font>" 92 source="1.8" /> 93 </target> 94 95 <target name="build" depends="init" description="build web classes"> 96 <mkdir dir="${build.dir}" /> 97 <mkdir dir="${log.dir}" /> 98 <javac srcdir="${src.dir}" includes="org/unicode/cldr/unittest/*.java" 99 destdir="${build.dir}" classpathref="project.class.path" source="1.8" 100 target="1.8" debug="on" deprecation="off" includeantruntime="false" 101 encoding="UTF-8" /> 102 <mkdir dir="${build.dir}/org/unicode/cldr/unittest" /> 103 <copy todir="${build.dir}/org/unicode/cldr/unittest"> 104 <fileset dir="${src.dir}/org/unicode/cldr/unittest" excludes="**/CVS/**/* **/**/*.java" /> 105 </copy> 106 </target> 107 108 <target name="check" description="Run the CLDR test suite and data tests" 109 depends="unittest,datacheck"> 110 </target> 111 112 <target name="pcheck" depends="init"> 113 <sequential> 114 <delete file="${cldr.unittest.result}" /> 115 <delete file="${cldr.datacheck.result}" /> 116 <parallel threadsPerProcessor="1"> 117 <ant target='cldr.unittest.logged' /> 118 <ant target='cldr.datacheck.logged' /> 119 </parallel> 120 <loadfile property="cldr.unittest.log_file" srcfile="${cldr.unittest.log}" /> 121 <loadfile property="cldr.datacheck.log_file" srcfile="${cldr.datacheck.log}" /> 122 <loadfile property="cldr.unittest.result_file" srcfile="${cldr.unittest.result}" /> 123 <loadfile property="cldr.datacheck.result_file" srcfile="${cldr.datacheck.result}" /> 124 <echo 125 message="CLDR Build Results: ${line.separator} Unit Tests: ${line.separator} ${cldr.unittest.log_file} ${line.separator} --- ${line.separator} Data Check: ${line.separator} ${cldr.datacheck.log_file}" /> 126 <fail message="CLDR Unit Tests FAILED"> 127 <condition> 128 <not> 129 <equals arg1="${cldr.unittest.result_file}" arg2="0" /> 130 </not> 131 </condition> 132 </fail> 133 <fail message="CLDR Data Check FAILED"> 134 <condition> 135 <not> 136 <equals arg1="${cldr.datacheck.result_file}" arg2="0" /> 137 </not> 138 </condition> 139 </fail> 140 </sequential> 141 </target> 142 143 <target name="unittest" description="Run the standard CLDR test suite" 144 depends="init,build"> 145 <antcall target="_runUnitTests"> 146 <param name="rununittest.arg" value="-n -q" /> 147 <param name="rununittest.jvmarg" value="${jvm_options}" /> 148 </antcall> 149 </target> 150 151 <target name="cldr.unittest.logged" description="Run the standard CLDR test suite" 152 depends="init,build"> 153 <property name="rununittest.arg" value="-n -q" /> 154 <property name="rununittest.jvmarg" value="${jvm_options}" /> 155 <echo 156 message="JVM argument: ${rununittest.jvmarg} -DCLDR_ENVIRONMENT=UNITTEST -Djava.awt.headless=true ${line.separator}" 157 output="${cldr.unittest.log}" /> 158 <echo message="Test argument: ${rununittest.arg} ${line.separator}" 159 output="${cldr.unittest.log}" append="true" /> 160 <echo level="info" message="CLDR Unit Tests In Progress" /> 161 <java classname="org.unicode.cldr.unittest.TestAll" fork="yes" 162 failonerror="false" resultproperty="unittest.result" classpathref="project.class.path" 163 output="${cldr.unittest.log}" append="true"> 164 <arg line="${rununittest.arg}" /> 165 <jvmarg 166 line="${rununittest.jvmarg} -DCLDR_ENVIRONMENT=UNITTEST -Djava.awt.headless=true" /> 167 </java> 168 <echo message="${unittest.result}" file="${cldr.unittest.result}" /> 169 </target> 170 171 <target name="unittestExhaustive" 172 description="Run the standard CLDR test suite in exhaustive mode" 173 depends="init,build"> 174 <antcall target="_runUnitTests"> 175 <param name="rununittest.arg" value="-n -q -e10" /> 176 <param name="rununittest.jvmarg" value="${jvm_options}" /> 177 </antcall> 178 </target> 179 180 <target name="_runUnitTests" depends="init,build"> 181 <echo 182 message="JVM argument: ${rununittest.jvmarg} -DCLDR_ENVIRONMENT=UNITTEST -Djava.awt.headless=true" /> 183 <echo message="Test argument: ${rununittest.arg}" /> 184 <java classname="org.unicode.cldr.unittest.TestAll" fork="yes" 185 failonerror="true" classpathref="project.class.path"> 186 <arg line="${rununittest.arg}" /> 187 <jvmarg 188 line="${rununittest.jvmarg} -DCLDR_ENVIRONMENT=UNITTEST -Djava.awt.headless=true" /> 189 </java> 190 </target> 191 192 193 <target name="datacheck" description="Run the standard data tests" 194 depends="init,build"> 195 <antcall target="_dataCheck"> 196 <param name="datacheck.arg" value="-S common,seed -e -z FINAL_TESTING" /> 197 <param name="datacheck.jvmarg" value="${jvm_options}" /> 198 </antcall> 199 </target> 200 201 <target name="cldr.datacheck.logged" description="Run the standard data tests" 202 depends="init,build"> 203 <antcall target="_dataCheck_logged"> 204 <param name="datacheck.arg" value="-S common,seed -e -z FINAL_TESTING" /> 205 <param name="datacheck.jvmarg" value="${jvm_options}" /> 206 </antcall> 207 </target> 208 209 <target name="_dataCheck_logged" depends="init,build"> 210 <echo 211 message="JVM argument: ${datacheck.jvmarg} -Djava.awt.headless=true ${line.separator}" 212 output="${cldr.datacheck.log}" /> 213 <echo message="Test argument: ${datacheck.arg} ${line.separator}" 214 output="${cldr.datacheck.log}" append="true" /> 215 <echo level="info" message="CLDR Data Check In Progress" /> 216 <java classname="org.unicode.cldr.test.ConsoleCheckCLDR" fork="yes" 217 failonerror="false" resultproperty="datacheck.result" classpathref="project.class.path" 218 output="${cldr.datacheck.log}" append="true"> 219 <arg line="${datacheck.arg}" /> 220 <jvmarg line="${datacheck.jvmarg} -Djava.awt.headless=true" /> 221 </java> 222 <echo message="${datacheck.result}" file="${cldr.datacheck.result}" /> 223 </target> 224 225 <target name="_dataCheck" depends="init,build"> 226 <echo message="JVM argument: ${datacheck.jvmarg} -Djava.awt.headless=true" /> 227 <echo message="Test argument: ${datacheck.arg}" /> 228 <java classname="org.unicode.cldr.test.ConsoleCheckCLDR" fork="yes" 229 failonerror="true" classpathref="project.class.path"> 230 <arg line="${datacheck.arg}" /> 231 <jvmarg line="${datacheck.jvmarg} -Djava.awt.headless=true" /> 232 </java> 233 </target> 234 235</project> 236