blob: 7f92fa0833b6e32ed1bc257d79f92190f5e3f309 [file] [log] [blame]
<!--/*******************************************************************************
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution.
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
* and the Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* Ant naming conventions:
* - regardless of the actual OS platform,'/' is the directory separator
* (Ant will convert as appropriate).
* - multi-word properties use periods '.'
* - properties ending in .jar define jarfile names only (no path)
* - properties ending in .lib are fully qualified jars (path and filename)
* - properties ending in .dir are directory paths
* - properties ending in .path are path refid names (classpath fragments)
* - multi-word targets use hyphens '-'
* - targets beginning with test- are reserved for high level test targets,
* and are used in test results parsing
* - targets typically use the form <action>-<object>-<type> (ie. package-bundle-zip)
* - multi-word macros use underscores '_'
* - multi-word macro attributes are concatenated
* e.g. 'runpathref'
* - multi-word tasks (taskdef) names are concatenated
* e.g. 'validateconnection'
* - OS environment variables are in ALLCAPS and have 'env' as a prefix
* e.g. ${env.XXX}.
* - Ant properties are lower case.
*
* Contributors:
* tware - initial API and implementation
* egwin - update to adopt calling standards
#******************************************************************************/-->
<!-- This ant project includes the following tasks:
- build (default) : cleans, compiles, and packages all tests
- clean : cleans up all generated files and dirs
- compile : compiles all tests
- package : packages test jar
- test : runs tests
- test-oracle: Runs Core Oracle-specific tests
It requires some configuration of the build.properties and test.properties to run.
-->
<project name="eclipselink.extension.oracle.test" default="build" basedir=".">
<available file="../${ant.project.name}" type="dir" property="oracle_test.is.local"/>
<fail message="Not running from '${ant.project.name}' directory" unless="oracle_test.is.local"/>
<dirname property="oracle_test.build.location_temp" file="${ant.file.eclipselink.extension.oracle.test}"/>
<pathconvert targetos="unix" property="oracle_test.build.location">
<path>
<pathelement location="${oracle_test.build.location_temp}"/>
</path>
</pathconvert>
<echo message="oracle_test.build.location = '${oracle_test.build.location}'"/>
<condition property="oracle_test.2.base.dir" value="../.." else="..">
<contains string="${oracle_test.build.location}" substring="foundation"/>
</condition>
<echo message="oracle_test.2.base.dir = '${oracle_test.2.base.dir}'"/>
<property name="oracle_test.2.common.plugins.dir" value="${oracle_test.2.base.dir}/plugins"/>
<property name="oracle_test.2.core.dir" value="../org.eclipse.persistence.core"/>
<property name="oracle_test.2.core.test.dir" value="../eclipselink.core.test"/>
<property name="oracle_test.2.jpa.dir" value="${oracle_test.2.base.dir}/jpa/org.eclipse.persistence.jpa"/>
<property name="oracle_test.2.jpa.test.dir" value="${oracle_test.2.base.dir}/jpa/eclipselink.jpa.test"/>
<property name="oracle_test.2.jpa.plugins.dir" value="${oracle_test.2.base.dir}/jpa/plugins"/>
<property name="oracle_test.plugins.dir" value="../plugins"/>
<!-- Allows a user to overide certain user specific properties. -->
<property file="${user.home}/build.properties"/>
<property file="${test.properties}"/>
<property file="${user.home}/test.properties"/>
<property file="${oracle_test.build.location}/antbuild.properties"/>
<property file="${oracle_test.build.location}/${test.properties}"/>
<property file="${oracle_test.build.location}/test.properties"/>
<!-- Local path variables -->
<property name="oracle_test.src.dir" value="${oracle_test.build.location}/${src.dir}"/>
<property name="oracle_test.resource.dir" value="${oracle_test.build.location}/${resource.dir}"/>
<property name="oracle_test.classes.dir" value="${oracle_test.build.location}/${classes.dir}"/>
<property name="oracle_test.report.dir" value="${oracle_test.build.location}/${report.dir}"/>
<property name="oracle_test.run.dir" value="${oracle_test.build.location}/${run.dir}"/>
<!-- Default ant target, compiles and translates resources, does not run tests. -->
<target name="build" depends="clean, compile, package" description="build Oracle extension tests"/>
<!-- Clean all build generated content. -->
<target name="clean" description="Clean the build">
<echo message="Cleaning..."/>
<echo message=" ${oracle_test.classes.dir}"/>
<echo message=" ${oracle_test.report.dir}"/>
<echo message=" ${oracle_test.run.dir}"/>
<echo message=" ${oracle_test.build.location}/${oracle.test.jar}"/>
<echo message=" ${oracle_test.build.location}/eclipselink-struct-converter-model.jar"/>
<echo message=" ${oracle_test.build.location}/eclipselink-customfeatures-model.jar"/>
<echo message=" ${oracle_test.build.location}/eclipselink-dcn-model.jar"/>
<echo message=" ${oracle_test.build.location}/${oracle.jpa.test.jar}"/>
<delete includeEmptyDirs="true" failonerror="false">
<fileset dir="${oracle_test.classes.dir}"/>
<fileset dir="${oracle_test.report.dir}"/>
<fileset dir="${oracle_test.run.dir}"/>
<fileset dir="${oracle_test.build.location}" includes="${oracle.test.jar}"/>
<fileset dir="${oracle_test.build.location}" includes="eclipselink-struct-converter-model.jar"/>
<fileset dir="${oracle_test.build.location}" includes="eclipselink-customfeatures-model.jar"/>
<fileset dir="${oracle_test.build.location}" includes="eclipselink-dcn-model.jar"/>
<fileset dir="${oracle_test.build.location}" includes="${oracle.jpa.test.jar}"/>
</delete>
</target>
<target name="init">
<!-- Give this a default value if not set in a user.home or test property file -->
<property name="oracle.extensions.depend.dir" value="../${oracle_test.2.base.dir}/extension.oracle.lib.external"/>
<property name="extensions.depend.dir" value="../${oracle_test.2.base.dir}/extension.lib.external"/>
<property name="junit.lib" value="${extensions.depend.dir}/junit.jar"/>
<property name="jacocoagent.lib" value="${extensions.depend.dir}/${jacocoagent.jar}"/>
<echo message="oracle_test.src.dir ='${oracle_test.src.dir}'"/>
<echo message="oracle_test.resource.dir='${oracle_test.resource.dir}'"/>
<echo message="oracle_test.classes.dir ='${oracle_test.classes.dir}'"/>
<echo message="oracle_test.report.dir ='${oracle_test.report.dir}'"/>
<echo message="oracle_test.run.dir ='${oracle_test.run.dir}'"/>
<echo message="user.home ='${user.home}'"/>
<echo message="test.properties='${test.properties}'"/>
<echo message="extensions.depend.dir ='${extensions.depend.dir}'"/>
<echo message="junit.lib ='${junit.lib}'"/>
<!-- versioning -->
<!-- These variables are set in autobuild.xml. A manual build gets defaults -->
<tstamp>
<format property="build.date" pattern="yyyyMMdd"/>
<format property="build.time" pattern="HHmm"/>
</tstamp>
<property name="build.type" value="SNAPSHOT"/>
<property name="svn.revision" value="NA"/>
<property name="version.qualifier" value="qualifier"/>
<property name="version.string" value="${release.version}.${version.qualifier}"/>
<property name="release.designation" value="EclipseLink ${release.version} Build"/>
<!-- Determine appropriate settings for Oracle lib variables (overrides of .lib variables won't get reset) -->
<!-- Check first in oracle extensions dir -->
<condition property="oracle.xdb.lib" value="${oracle.extensions.depend.dir}/${oracle.xdb.jar}"
else="${extensions.depend.dir}/${oracle.xdb.jar}">
<available file="${oracle.extensions.depend.dir}/${oracle.xdb.jar}"/>
</condition>
<condition property="oracle.aqapi.lib" value="${oracle.extensions.depend.dir}/${oracle.aqapi.jar}"
else="${extensions.depend.dir}/${oracle.aqapi.jar}">
<available file="${oracle.extensions.depend.dir}/${oracle.aqapi.jar}"/>
</condition>
<condition property="oracle.xmlparser.lib" value="${oracle.extensions.depend.dir}/${oracle.xmlparser.jar}"
else="${extensions.depend.dir}/${oracle.xmlparser.jar}">
<available file="${oracle.extensions.depend.dir}/${oracle.xmlparser.jar}"/>
</condition>
<condition property="oracle.orai18n.lib" value="${oracle.extensions.depend.dir}/${oracle.orai18n.jar}"
else="${extensions.depend.dir}/${oracle.orai18n.jar}">
<available file="${oracle.extensions.depend.dir}/${oracle.orai18n.jar}"/>
</condition>
<condition property="oracle.orai18n-mapping.lib" value="${oracle.extensions.depend.dir}/${oracle.orai18n-mapping.jar}"
else="${extensions.depend.dir}/${oracle.orai18n-mapping.jar}">
<available file="${oracle.extensions.depend.dir}/${oracle.orai18n-mapping.jar}"/>
</condition>
<condition property="oracle.ucp.lib" value="${oracle.extensions.depend.dir}/${oracle.ucp.jar}"
else="${extensions.depend.dir}/${oracle.ucp.jar}">
<available file="${oracle.extensions.depend.dir}/${oracle.ucp.jar}"/>
</condition>
<!-- Create needed directories
<mkdir dir="${oracle_test.classes.dir}"/>
<mkdir dir="${oracle_test.run.dir}"/>
<mkdir dir="${oracle_test.report.dir}"/ -->
<!-- Determine availability of compile dependencies -->
<available file="${oracle_test.2.common.plugins.dir}/${antlr}_${version.string}.jar" property="antlr.bundle.exist"/>
<available file="${oracle_test.2.common.plugins.dir}/${asm}_${version.string}.jar" property="asm.bundle.exist"/>
<available file="${oracle_test.2.common.plugins.dir}/org.eclipse.persistence.jpa_${version.string}.jar" property="jpa.bundle.exist"/>
<available file="${oracle_test.2.common.plugins.dir}/org.eclipse.persistence.core_${version.string}.jar" property="core.bundle.exist"/>
<available file="${oracle_test.2.common.plugins.dir}/org.eclipse.persistence.oracle_${version.string}.jar" property="oracle.bundle.exist"/>
<available file="${oracle_test.2.base.dir}/${eclipselink.jar}" property="eclipselink.jar.exist"/>
<available file="${oracle_test.2.jpa.dir}/${classes.dir}" type="dir" property="jpa.classes.exist"/>
<available file="${oracle_test.2.core.dir}/${classes.dir}" type="dir" property="core.classes.exist"/>
<available file="${oracle_test.2.oracle.dir}/${classes.dir}" type="dir" property="oracle.classes.exist"/>
<available classname="org.junit.Test" classpath="${junit.lib}" property="junit.lib.exist"/>
<available file="${oracle_test.2.common.plugins.dir}/${unsigned.persistence10.jar}" property="persistence.bundle.exist"/>
<available file="${oracle_test.2.core.test.dir}/${coretest.framework.jar}" property="test.framework.exist"/>
<available file="${oracle_test.2.core.test.dir}/${core.test.jar}" property="core.test.models.exist"/>
<available file="${oracle_test.2.jpa.test.dir}/${jpatest.framework.jar}" property="jpatest.framework.exist"/>
<!-- Determine availability of runtime dependencies -->
<available file="${oracle_test.2.jpa.dir}/${resource.dir}" type="dir" property="jpa.resources.exist"/>
<available file="${oracle_test.2.core.dir}/${resource.dir}" type="dir" property="core.resources.exist"/>
<available file="${oracle_test.2.oracle.dir}/${resource.dir}" type="dir" property="oracle.resources.exist"/>
<available file="${jdbc.driver.jar}" property="jdbc.jar.exist"/>
<!-- Determine availability and location of Oracle dependencies -->
<available file="${oracle.extensions.depend.dir}" type="dir" property="oracle.depend.dir.exist"/>
<available file="${extensions.depend.dir}" type="dir" property="ext.depend.dir.exist"/>
<!-- Now retest using the regular extensions dir, if already found variables will not be reset -->
<available file="${oracle.xdb.lib}" property="oracle.xdb.lib.exist"/>
<available file="${oracle.aqapi.lib}" property="oracle.aqapi.lib.exist"/>
<available file="${oracle.xmlparser.lib}" property="oracle.xmlparser.lib.exist"/>
<available file="${oracle.ucp.lib}" property="oracle.ucp.lib.exist"/>
<!-- Determine where to get product classes, based upon availability -->
<condition property="use.eclipselink">
<isset property="eclipselink.jar.exist"/>
</condition>
<condition property="use.bundles">
<and>
<isset property="antlr.bundle.exist"/>
<isset property="asm.bundle.exist"/>
<isset property="jpa.bundle.exist"/>
<isset property="core.bundle.exist"/>
<isset property="oracle.bundle.exist"/>
<not> <isset property="use.eclipselink"/> </not>
</and>
</condition>
<condition property="use.classes">
<and>
<isset property="jpa.resources.exist"/>
<isset property="core.resources.exist"/>
<isset property="oracle.resources.exist"/>
<isset property="jpa.classes.exist"/>
<isset property="core.classes.exist"/>
<isset property="oracle.classes.exist"/>
<not> <isset property="use.eclipselink"/> </not>
<not> <isset property="use.bundles"/> </not>
</and>
</condition>
<condition property="use.failed">
<and>
<not> <isset property="use.eclipselink"/> </not>
<not> <isset property="use.bundles"/> </not>
<not> <isset property="use.classes"/> </not>
</and>
</condition>
<!-- Determine availability of other dependencies -->
<condition property="dependency.ok">
<and>
<isset property="test.framework.exist"/>
<isset property="core.test.models.exist"/>
<isset property="jpatest.framework.exist"/>
<isset property="junit.lib.exist"/>
<isset property="oracle.xdb.lib.exist"/>
<isset property="jdbc.jar.exist"/>
<isset property="oracle.aqapi.lib.exist"/>
<isset property="oracle.xmlparser.lib.exist"/>
<isset property="oracle.ucp.lib.exist"/>
</and>
</condition>
<condition property="run.ok">
<and>
<not> <isset property="use.failed"/> </not>
<isset property="jdbc.jar.exist"/>
</and>
</condition>
</target>
<target name="init_eclipselink" if="use.eclipselink">
<echo message="Using EclipseLink.jar as 'product' in compile dependency."/>
<path id="oracle_test.product.path">
<pathelement path="${oracle_test.2.base.dir}/${eclipselink.jar}"/>
</path>
</target>
<target name="init_bundles" if="use.bundles">
<echo message="Using EclipseLink OSGi bundles as 'product' in compile dependency."/>
<path id="oracle_test.product.path">
<pathelement path="${oracle_test.2.common.plugins.dir}/${antlr}_${version.string}.jar"/>
<pathelement path="${oracle_test.2.common.plugins.dir}/${asm}_${version.string}.jar"/>
<pathelement path="${oracle_test.2.common.plugins.dir}/org.eclipse.persistence.core_${version.string}.jar"/>
</path>
</target>
<target name="init_classes" if="use.classes">
<echo message="Using EclipseLink classes directly as 'product' in compile dependency."/>
<path id="oracle_test.product.path">
<pathelement path="${jacocoagent.lib}"/>
<pathelement path="${oracle_test.2.common.plugins.dir}/${antlr}"/>
<pathelement path="${oracle_test.2.common.plugins.dir}/${asm}"/>
<pathelement path="${oracle_test.2.jpa.dir}/${classes.dir}"/>
<pathelement path="${oracle_test.2.jpa.dir}/${resource.dir}"/>
<pathelement path="${oracle_test.2.core.dir}/${classes.dir}"/>
<pathelement path="${oracle_test.2.core.dir}/${resource.dir}"/>
<pathelement path="${oracle_test.2.oracle.dir}/${classes.dir}"/>
<pathelement path="${oracle_test.2.oracle.dir}/${resource.dir}"/>
</path>
</target>
<target name="init_dependency" if="dependency.ok" depends="announce_missing_dependencies">
<path id="oracle_test.oracle.dependency.path">
<pathelement path="${jdbc.driver.jar}"/>
<pathelement path="${oracle.xdb.lib}"/>
<pathelement path="${oracle.aqapi.lib}"/>
<pathelement path="${oracle.xmlparser.lib}"/>
<pathelement path="${oracle.orai18n.lib}"/>
<pathelement path="${oracle.orai18n-mapping.lib}"/>
<pathelement path="${oracle.ucp.lib}"/>
<pathelement path="${junit.lib}"/>
<pathelement path="${jacocoagent.lib}"/>
</path>
<path id="oracle_test.test.infrastructure.path">
<pathelement path="${oracle_test.2.core.test.dir}/${coretest.framework.jar}"/>
<pathelement path="${oracle_test.2.core.test.dir}/${core.test.jar}"/>
<pathelement path="${oracle_test.2.jpa.test.dir}/${jpatest.framework.jar}"/>
<pathelement path="${jacocoagent.lib}"/>
<pathelement path="${junit.lib}"/>
</path>
<path id="oracle_test.public.dependency.path">
<pathelement path="${oracle_test.2.jpa.plugins.dir}/${persistence21.jar}"/>
<fileset dir="${oracle_test.2.common.plugins.dir}" includes="${eclipselink.core.depend}"/>
</path>
</target>
<target name="init_paths" depends="init, init_eclipselink, init_bundles, init_classes, init_dependency">
<fail message="Product classes do not exist anywhere! Compile product or populate jars." if="use.failed"/>
<!-- Define 'Helper' path refids -->
<path id="oracle_test.runtime.only.path">
<pathelement path="${oracle_test.build.location}/${oracle.test.jar}"/>
<pathelement path="${oracle_test.run.dir}"/>
<pathelement path="${jdbc.driver.jar}"/>
<pathelement path="${oracle_test.2.core.test.dir}/resource"/>
</path>
<!-- Classpath used for compiling tests. -->
<path id="oracle_test.compile.path">
<path refid="oracle_test.product.path"/>
<path refid="oracle_test.public.dependency.path"/>
<path refid="oracle_test.oracle.dependency.path"/>
<path refid="oracle_test.test.infrastructure.path"/>
</path>
<!-- Classpath used for running tests. -->
<path id="oracle_test.run.path">
<path refid="oracle_test.compile.path"/>
<path refid="oracle_test.runtime.only.path"/>
</path>
</target>
<target name="announce_missing_dependencies" unless="dependency.ok" description="publicize missing dependencies">
<echo message="Following is a list of dependencies and their status ('found=' anything but 'true' means it wasn't found):"/>
<echo message=" Test infrastructure:"/>
<echo message=" '${junit.lib}' :: found='${junit.lib.exist}'"/>
<echo message=" '${oracle_test.2.jpa.test.dir}/${jpatest.framework.jar}' :: found='${jpatest.framework.exist}'"/>
<echo message=" '${oracle_test.2.core.test.dir}/${core.test.jar}' :: found='${core.test.models.exist}'"/>
<echo message=" '${oracle_test.2.core.test.dir}/${coretest.framework.jar}' :: found='${test.framework.exist}'"/>
<echo message="The test framework is currently part of the core.test and jpa.test projects. Be sure they are built."/>
<echo message=" oracle dependency location: '${oracle.extensions.depend.dir}' :: found='${oracle.depend.dir.exist}'"/>
<echo message=" dependency location: '${extensions.depend.dir}' :: found='${ext.depend.dir.exist}'"/>
<echo message=" '${jdbc.driver.jar}' :: found='${jdbc.jar.exist}'"/>
<echo message=" '${oracle.xdb.lib}' :: found='${oracle.xdb.lib.exist}'"/>
<echo message=" '${oracle.aqapi.lib}' :: found='${oracle.aqapi.lib.exist}'"/>
<echo message=" '${oracle.xmlparser.lib}' :: found='${oracle.xmlparser.lib.exist}'"/>
<echo message=" '${oracle.ucp.lib}' :: found='${oracle.ucp.lib.exist}'"/>
<echo message="Please put your Oracle dependencies in one of the two 'dependency' locations (default or custom defined)."/>
<fail message="Missing dependencies!" unless="compile.ok"/>
</target>
<!-- Compiles all tests. -->
<target name="compile" depends="init_paths" description="compile EclipseLink Oracle tests">
<echo message="Using the following oracle dependencies:"/>
<echo message=" '${jdbc.driver.jar}'"/>
<echo message=" '${oracle.xdb.lib}'"/>
<echo message=" '${oracle.aqapi.lib}'"/>
<echo message=" '${oracle.xmlparser.lib}'"/>
<echo message=" '${oracle.orai18n.lib}'"/>
<echo message=" '${oracle.orai18n-mapping.lib}'"/>
<echo message=" '${oracle.ucp.lib}'"/>
<mkdir dir="${oracle_test.classes.dir}"/>
<javac srcdir="${oracle_test.src.dir}"
destdir="${oracle_test.classes.dir}"
includes="org/eclipse/persistence/**, java/sql/**"
debug="${javac.debug}"
debuglevel="${javac.debuglevel}"
encoding="UTF-8"
optimize="${javac.optimize}"
source="${javac.version}"
target="${javac.version}"
deprecation="${javac.deprecation}"
failonerror="true"
memoryMaximumSize="512m"
fork="true">
<classpath>
<path refid="oracle_test.compile.path"/>
</classpath>
</javac>
</target>
<target name="package">
<!-- Package the customfeatures JPA model jar. -->
<jar jarfile="eclipselink-customfeatures-model.jar">
<zipfileset dir="resource/customfeatures" includes="*.xml" prefix="META-INF"/>
<fileset dir="${oracle_test.classes.dir}"
includes="org/eclipse/persistence/testing/models/jpa/customfeatures/**"/>
</jar>
<!-- Package the proxyauthentication JPA model jar. -->
<jar jarfile="eclipselink-proxyauthentication-model.jar">
<zipfileset dir="resource/proxyauthentication" includes="*.xml" prefix="META-INF"/>
<fileset dir="${oracle_test.classes.dir}"
includes="org/eclipse/persistence/testing/models/jpa/proxyauthentication/**"/>
</jar>
<!-- Package the timestamptz JPA model jar. -->
<jar jarfile="eclipselink-timestamptz-model.jar">
<zipfileset dir="resource/timestamptz" includes="*.xml" prefix="META-INF"/>
<fileset dir="${oracle_test.classes.dir}"
includes="org/eclipse/persistence/testing/models/jpa/timestamptz/**"/>
</jar>
<!-- Package the dcn JPA model jar. -->
<jar jarfile="eclipselink-dcn-model.jar">
<zipfileset dir="resource/dcn" includes="*.xml" prefix="META-INF"/>
<fileset dir="${oracle_test.classes.dir}"
includes="org/eclipse/persistence/testing/models/jpa/dcn/**"/>
</jar>
<!-- Package the JPA oracle specific tests jar. -->
<jar jarfile="${oracle.jpa.test.jar}">
<fileset dir="${oracle_test.classes.dir}"
includes="org/eclipse/persistence/testing/tests/jpa/**"/>
</jar>
<!-- Build tests jar. -->
<jar jarfile="${oracle.test.jar}">
<fileset dir="${oracle_test.classes.dir}"
includes="org/eclipse/persistence/**/*.class"
excludes="org/eclipse/persistence/testing/models/jpa/**,
org/eclipse/persistence/testing/tests/jpa/**"/>
<fileset dir="${oracle_test.resource.dir}"
includes="org/eclipse/persistence/**"/>
</jar>
</target>
<target name="init_run" depends="init_paths">
<mkdir dir="${oracle_test.run.dir}"/>
<mkdir dir="${oracle_test.report.dir}"/>
<copy file="${oracle_test.2.core.test.dir}/${resource.dir}/java.policy.allpermissions" todir="${oracle_test.run.dir}" overwrite="true"/>
</target>
<!-- Default test target, runs test.class from test.properties (default is OracleTestModel). -->
<target name="test" depends="init_run">
<run_test testclass="${test.class}" dburl="${db.url}"/>
<generate.report/>
</target>
<!-- Runs Core Oracle-specific tests. -->
<target name="test-oracle" depends="init_run">
<run_test testclass="org.eclipse.persistence.testing.tests.OracleTestModel" dburl="${db.url}"/>
<run_test testclass="org.eclipse.persistence.testing.tests.xdb.XDBTestModel" dburl="${db.oci.url}"/>
<run_test testclass="org.eclipse.persistence.testing.tests.xdb.XDBTestModelMWIntegration" dburl="${db.oci.url}"/>
<run_test testclass="org.eclipse.persistence.testing.tests.unwrappedconnection.UnwrapConnectionXDBTestModel" dburl="${db.oci.url}"/>
<generate_report/>
</target>
<!-- Prompt runner test target, runs test.class from test.properties (default is OracleTestModel). -->
<target name="test-prompt" depends="init_run">
<run_test_prompt testclass="${test.class}" dburl="${db.url}"/>
</target>
<!-- Launches the testing browser -->
<target name="test-browser">
<echo>Running test browser</echo>
<mkdir dir="${oracle_test.run.dir}"/>
<mkdir dir="${oracle_test.report.dir}"/>
<copy file="${oracle_test.2.core.test.dir}/${resource.dir}/java.policy.allpermissions" todir="${oracle_test.run.dir}" overwrite="true"/>
<!-- Can be set e.g. in test.properties to add VM options for a particular platform/driver -->
<property name="additional.jvmargs" value="-Ddummy2=dummy"/>
<java classname="org.eclipse.persistence.testing.framework.ui.TestingBrowserFrame"
fork="true"
maxmemory="512m"
failonerror="false"
dir="${run.dir}">
<jvmarg line="${additional.jvmargs}"/>
<jvmarg value="-Declipselink.logging.level=${logging.level}"/>
<jvmarg value="-Ddb.driver=${db.driver}"/>
<jvmarg value="-Ddb.url=${db.url}"/>
<jvmarg value="-Ddb.user=${db.user}"/>
<jvmarg value="-Ddb.pwd=${db.pwd}"/>
<jvmarg value="-Ddb.platform=${db.platform}"/>
<jvmarg value="-Djava.security.manager"/>
<jvmarg value="-Djava.security.policy=../java.policy.allpermissions"/>
<classpath>
<path refid="oracle_test.run.path"/>
</classpath>
</java>
</target>
<!-- Generic target for running tests. -->
<macrodef name="run_test">
<attribute name="testclass"/>
<attribute name="dburl"/>
<sequential>
<pathconvert property="oracle_test.run.path.msg" refid="oracle_test.run.path"/>
<echo>Running test on @{dburl}</echo>
<echo>ClassPath: ${oracle_test.run.path.msg}</echo>
<!-- Can be set e.g. in test.properties to add VM options for a particular platform/driver -->
<property name="additional.jvmargs" value="-Ddummy2=dummy"/>
<junit printsummary="yes" failureproperty="junit.failed" fork="yes" forkmode="once" showoutput="true" maxmemory="512m" dir="${run.dir}">
<!--<jvmarg line="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=4000"/>-->
<jvmarg value="-Declipselink.logging.level=${logging.level}"/>
<jvmarg value="-Ddb.driver=${db.driver}"/>
<jvmarg value="-Ddb.url=@{dburl}"/>
<jvmarg value="-Ddb.user=${db.user}"/>
<jvmarg value="-Ddb.pwd=${db.pwd}"/>
<jvmarg value="-Ddb.platform=${db.platform}"/>
<jvmarg value="-Djava.library.path=${java.library.path}"/>
<jvmarg value="-Djava.security.manager"/>
<jvmarg value="-Djava.security.policy=./java.policy.allpermissions"/>
<classpath>
<path refid="oracle_test.run.path"/>
</classpath>
<formatter type="xml"/>
<test name="@{testclass}" haltonfailure="no" outfile="${report.dir}/@{testclass}-test-results">
</test>
</junit>
</sequential>
</macrodef>
<macrodef name="generate_report">
<sequential>
<junitreport todir="${report.dir}">
<fileset dir="${report.dir}">
<include name="*test-results.xml"/>
</fileset>
<report format="noframes" todir="${report.dir}"/>
</junitreport>
</sequential>
</macrodef>
<!-- Runs the test using the PromptTestRunner -->
<macrodef name="run_test_prompt">
<attribute name="testclass"/>
<attribute name="dburl"/>
<sequential>
<pathconvert property="oracle_test.run.path.msg" refid="oracle_test.run.path"/>
<echo>Running test on @{dburl}</echo>
<echo>ClassPath: ${oracle_test.run.path.msg}</echo>
<!-- Can be set e.g. in test.properties to add VM options for a particular platform/driver -->
<property name="additional.jvmargs" value="-Ddummy2=dummy"/>
<java classname="org.eclipse.persistence.testing.framework.PromptTestRunner"
fork="true"
maxmemory="512m"
failonerror="false"
dir="${oracle_test.run.dir}">
<jvmarg line="${additional.jvmargs}"/>
<jvmarg value="-Declipselink.logging.level=${logging.level}"/>
<jvmarg value="-Ddb.driver=${db.driver}"/>
<jvmarg value="-Ddb.url=@{dburl}"/>
<jvmarg value="-Ddb.user=${db.user}"/>
<jvmarg value="-Ddb.pwd=${db.pwd}"/>
<jvmarg value="-Ddb.platform=${db.platform}"/>
<jvmarg value="-Djava.library.path=${java.library.path}"/>
<jvmarg value="${test.security-manager}"/>
<jvmarg value="${test.security-manager.policy}"/>
<arg value="pfile=../test.properties" />
<arg value="testmodel=@{testclass}" />
<arg value="regressionlog=${report.dir}/@{testclass}-test.log" />
<arg value="saveresults=true" />
<classpath>
<path refid="oracle_test.run.path"/>
</classpath>
</java>
</sequential>
</macrodef>
</project>