| <?xml version="1.0" encoding="UTF-8"?> |
| <project name="hsqldb.test.suite" |
| default="run.test.suite" |
| basedir=".."> |
| |
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
| <!-- B U I L D T I M E S T A M P --> |
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
| <tstamp> |
| <format property="_tmpstamp" |
| pattern="yyyy/MM/dd-hh:mm:ss" |
| locale="en"/> |
| </tstamp> |
| |
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
| <!-- U S E R B U I L D P R O P E R T I E S O V E R R I D E S --> |
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
| <property file="${basedir}/build/build.properties"/> |
| |
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
| <!-- D E F A U L T B U I L D P R O P E R T I E S --> |
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
| <property name="test.suite.version" |
| value="1.9.0"/> |
| |
| <property name="test.suite.title" |
| value="HSQLDB Test Suite"/> |
| |
| <property name="test.suite.vendor" |
| value="The HSQL Development Group"/> |
| |
| <property name="test.suite.implementation.title" |
| value="JDBC 4 Test Cases and Utilities"/> |
| |
| <property name="test.suite.implementation.label" |
| value="private-${_tmpstamp}"/> |
| |
| <property name="test.suite.implementation.vendor" |
| value="${user.name}"/> |
| |
| <property name="sqltool.jar" |
| value="${basedir}/lib/sqltool.jar" /> |
| |
| <property name="hsqldb.jar" |
| value="${basedir}/lib/hsqldb.jar" /> |
| |
| <property name="hsqldbtest.jar" |
| value="${basedir}/lib/hsqldbtest.jar" /> |
| |
| <property name="junit.jar" |
| value="${basedir}/lib/junit.jar" /> |
| |
| <property name="test.suite.jar" |
| value="${basedir}/lib/testsuite.jar" /> |
| |
| <property name="test.src.dir" |
| value="${basedir}/test-src" /> |
| |
| <property name="test.classes.dir" |
| value="${basedir}/test-classes" /> |
| |
| <property name="test.results.dir" |
| value="${basedir}/test-results" /> |
| |
| <property name="build.debug" |
| value="true" /> |
| |
| <property name="build.optimize" |
| value="false" /> |
| |
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
| <!-- B U I L D C L A S S P A T H --> |
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
| <path id="test.suite.javac.classpath"> |
| <pathelement location="${hsqldb.jar}"/> |
| <pathelement location="${sqltool.jar}"/> |
| <pathelement location="${junit.jar}" /> |
| </path> |
| |
| <path id="test.all.classpath"> |
| <pathelement location="${hsqldbtest.jar}"/> |
| <pathelement location="${junit.jar}" /> |
| </path> |
| |
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
| <!-- S H A R E D I N I T I A L I Z A T I O N --> |
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
| <target name="-init"> |
| <available classname="java.net.IDN" |
| property="ant.java.iscjava16"/> |
| |
| <fail unless='ant.java.iscjava16' |
| message="JDK must be 1.6 or greater"/> |
| |
| <available file="${hsqldb.jar}" |
| type='file' |
| property="hsqldb.available"/> |
| |
| <fail unless='hsqldb.available' |
| message="'hsqldb.jar' must reside at ${hsqldb.jar}"/> |
| |
| <available file="${sqltool.jar}" |
| type='file' |
| property="sqltool.available"/> |
| |
| <fail unless='sqltool.available' |
| message="'sqltool.jar' must reside at ${sqltool.jar}"/> |
| |
| <available file="${junit.jar}" |
| type='file' |
| property="junit.available"/> |
| |
| <fail unless='junit.available' |
| message="'junit.jar' must reside at ${junit.jar}"/> |
| |
| </target> |
| |
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
| <!-- M A K E T E S T S U I T E --> |
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
| <target name="make.test.suite" |
| description="Builds test classes and creates test suite jar" |
| depends="-init"> |
| <mkdir dir="${test.classes.dir}"/> |
| |
| <!-- Compile Classes --> |
| <javac srcdir="${test.src.dir}" |
| destdir="${test.classes.dir}" |
| debug="${build.debug}" |
| optimize="${build.optimize}" |
| > |
| <classpath refid="test.suite.javac.classpath"/> |
| <exclude name="**/TestWrapperInvocationHandler.java"/> |
| <!-- Temporarily excluding TestWrapperInvocationHandler until have |
| time to figure out how to resolve missing java.sql.* classes --> |
| <include name="**/*.java"/> |
| </javac> |
| |
| <!-- Build Jar --> |
| <jar jarfile="${test.suite.jar}" |
| basedir="${test.classes.dir}"> |
| <manifest> |
| <attribute name='Specification-Title' |
| value='${test.suite.title}'/> |
| |
| <attribute name='Specification-Version' |
| value='${test.suite.version}'/> |
| |
| <attribute name='Specification-Vendor' |
| value='${test.suite.vendor}'/> |
| |
| <attribute name='Implementation-Title' |
| value='${test.suite.implementation.title}'/> |
| |
| <attribute name='Implementation-Version' |
| value='${test.suite.implementation.label}'/> |
| |
| <attribute name='Implementation-Vendor' |
| value='${test.suite.implementation.vendor}'/> |
| </manifest> |
| <include name="**/*"/> |
| </jar> |
| </target> |
| |
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
| <!-- R U N T E S T S U I T E --> |
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
| <target name="run.test.suite" |
| description="Runs the test suite and generates test result reports" |
| depends="-init"> |
| |
| <available file="${test.suite.jar}" |
| type='file' |
| property="test.suite.jar.available"/> |
| |
| <fail unless='test.suite.jar.available' |
| message="The test suite jar must reside at ${test.suite.jar}"/> |
| |
| <mkdir dir="${test.results.dir}"/> |
| <mkdir dir="${test.results.dir}/resources"/> |
| <mkdir dir="${test.results.dir}/resources/org"/> |
| <mkdir dir="${test.results.dir}/resources/org/hsqldb"/> |
| <mkdir dir="${test.results.dir}/resources/org/hsqldb/util"/> |
| <mkdir dir="${test.results.dir}/resources/org/hsqldb/util/preprocessor"/> |
| |
| <copy todir="${test.results.dir}/resources/org/hsqldb/util/preprocessor"> |
| <fileset dir="${test.src.dir}/org/hsqldb/util/preprocessor" |
| includes="*.exp"/> |
| </copy> |
| <copy todir="${test.results.dir}/resources/org/hsqldb/util/preprocessor"> |
| <fileset dir="${test.src.dir}/org/hsqldb/util/preprocessor" |
| includes="*.inc"/> |
| </copy> |
| <copy todir="${test.results.dir}/resources/org/hsqldb/util/preprocessor"> |
| <fileset dir="${test.src.dir}/org/hsqldb/util/preprocessor" |
| includes="*.src"/> |
| </copy> |
| |
| <mkdir dir="${test.results.dir}/resources/org/hsqldb/jdbc"/> |
| |
| <copy todir="${test.results.dir}/resources/org/hsqldb/jdbc"> |
| <fileset dir="${test.src.dir}/org/hsqldb/jdbc" |
| includes="*.sql"/> |
| </copy> |
| |
| <mkdir dir="${test.results.dir}/resources/org/hsqldb/jdbc/resources"/> |
| <mkdir dir="${test.results.dir}/resources/org/hsqldb/jdbc/resources/xml"/> |
| |
| <copy todir="${test.results.dir}/resources/org/hsqldb/jdbc/resources/xml"> |
| <fileset dir="${test.src.dir}/org/hsqldb/jdbc/resources/xml" |
| includes="*.*"/> |
| </copy> |
| |
| <mkdir dir="${test.results.dir}/resources/org/hsqldb/jdbc/resources/sql"/> |
| |
| <copy todir="${test.results.dir}/resources/org/hsqldb/jdbc/resources/sql"> |
| <fileset dir="${test.src.dir}/org/hsqldb/jdbc/resources/sql" |
| includes="*.*"/> |
| </copy> |
| |
| <mkdir dir="${test.results.dir}/resources/org/hsqldb/resources"/> |
| |
| <copy todir="${test.results.dir}/resources/org/hsqldb/resources"> |
| <fileset dir="${test.src.dir}/org/hsqldb/resources" includes="*.*"/> |
| </copy> |
| |
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
| <!-- U S E R T E S T P R O P E R T I E S --> |
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
| <!-- Now using BundleHandler facility as primary properties loader, but --> |
| <!-- System properties still work (e.g. on command line -Dfoo=xyz or --> |
| <!-- using Ant to load properties files) and now take precedence over --> |
| <!-- bundle handler resources. --> |
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
| <!-- In this way, the bulk of the standard properties (that will probably --> |
| <!-- never need to be overriden) stay under the test source folder, hence --> |
| <!-- only specific property overrides need to be placed in the build --> |
| <!-- folder properties files or on the command line as -Dx=y directives. --> |
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
| <!-- The only (minor) disadvantage of this new scheme is that the bulk of --> |
| <!-- the test properties will no longer show up in the test report output --> |
| <!-- as environment settings --> |
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
| <property file="${basedir}/build/test.properties"/> |
| <property file="${basedir}/build/test.dbmd.convert.properties"/> |
| |
| <!-- Execute JUNIT Tests --> |
| <junit showoutput="true" |
| fork="false" |
| failureproperty="tests.failed" |
| errorproperty="tests.failed" > |
| <batchtest todir="${test.results.dir}"> |
| <fileset dir="${test.src.dir}" |
| includes="**/*Test.java"/> |
| </batchtest> |
| <classpath> |
| <pathelement location="${test.results.dir}/resources"/> |
| <path path="${hsqldb.jar}"/> |
| <path path="${junit.jar}"/> |
| <path path="${test.suite.jar}"/> |
| </classpath> |
| <syspropertyset id="test.suite.system.properties"> |
| <propertyref prefix="hsqldb.test.suite."/> |
| </syspropertyset> |
| <formatter type="xml"/> |
| </junit> |
| |
| <mkdir dir="${test.results.dir}/reports"/> |
| <mkdir dir="${test.results.dir}/reports/html"/> |
| |
| <!-- Generate Test Reports --> |
| <junitreport todir="${test.results.dir}/reports"> |
| <fileset dir="${test.results.dir}"> |
| <include name="TEST-*.xml"/> |
| </fileset> |
| <report format="frames" |
| todir="${test.results.dir}/reports/html"/> |
| </junitreport> |
| </target> |
| |
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
| <!-- R U N T E S T A L L --> |
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
| <target name="run.test.all" |
| description="Runs the org.hsqldb.test.TestAll set of tests."> |
| |
| <available file="${hsqldbtest.jar}" |
| type='file' |
| property="hsqldbtest.jar.available"/> |
| |
| <java classname="org.hsqldb.test.TestAll" |
| classpathref="test.all.classpath" |
| dir="${basedir}/testrun/hsqldb" |
| fork="true"/> |
| </target> |
| |
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
| <!-- C L E A N T E S T S U I T E --> |
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
| <target name="clean.test.suite" |
| description="Deletes compiled classes, test results and suite jar"> |
| <delete dir="${test.classes.dir}" /> |
| <delete dir="${test.results.dir}" /> |
| <delete file="${test.suite.jar}" /> |
| </target> |
| |
| </project> |