tests.xml revision 5975
3832N/A<!--
3832N/A ! CDDL HEADER START
3832N/A !
3832N/A ! The contents of this file are subject to the terms of the
3832N/A ! Common Development and Distribution License, Version 1.0 only
3832N/A ! (the "License"). You may not use this file except in compliance
3832N/A ! with the License.
3832N/A !
3832N/A ! You can obtain a copy of the license at
3832N/A ! trunk/opends/resource/legal-notices/OpenDS.LICENSE
3832N/A ! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
3832N/A ! See the License for the specific language governing permissions
3832N/A ! and limitations under the License.
3832N/A !
3832N/A ! When distributing Covered Code, include this CDDL HEADER in each
3832N/A ! file and include the License file at
3832N/A ! trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
3832N/A ! add the following below this CDDL HEADER, with the fields enclosed
3832N/A ! by brackets "[]" replaced with your own identifying information:
3832N/A ! Portions Copyright [yyyy] [name of copyright owner]
3832N/A !
3832N/A ! CDDL HEADER END
3832N/A !
3832N/A !
5061N/A ! Copyright 2008-2010 Sun Microsystems, Inc.
3832N/A ! -->
3832N/A<project name="tests">
4458N/A
3832N/A <description>
3832N/A Execute the tests.
3832N/A </description>
3832N/A
4692N/A <target name="specs">
4692N/A <javac srcdir="${shared.dir}/java/parsingtool"
4776N/A destdir="${shared.dir}/java/parsingtool"
4776N/A debug="true"
4776N/A debuglevel="lines,vars,source"
4776N/A verbose="yes"
4776N/A />
4692N/A <delete dir="${logs.dir}/specs" failonerror="false"/>
4692N/A <mkdir dir="${logs.dir}/specs"/>
4692N/A <java classpath="${shared.dir}/java/parsingtool"
4692N/A classname="GenerateOpenDSTestSpecs" fork="true">
4776N/A <!-- uncomment "agentlib" if need debugger waiting for you
4776N/A <jvmarg value="-agentlib:jdwp=transport=dt_socket,suspend=y,server=y,address=7778"/>
4776N/A -->
4692N/A <arg value="${tests.dir}"/>
4692N/A <arg value="${logs.dir}/specs"/>
4692N/A <arg value="xml" />
4692N/A </java>
4692N/A </target>
4692N/A
3832N/A <target name="run">
3832N/A <tstamp>
5061N/A <format property="tests.timestamp" pattern="yyyyMMdd-HHmmss"/>
3832N/A </tstamp>
5061N/A <var name="tests.run.time" value="${remote.hostname}-${tests.timestamp}"/>
3832N/A
4458N/A <!-- clean up tmp dir -->
4458N/A <if>
4458N/A <equals arg1="${tests.mode}" arg2="local"/>
4458N/A <then>
4458N/A <delete dir="${tests.tmp.dir}"/>
4458N/A <mkdir dir="${tests.tmp.dir}"/>
4458N/A </then>
4458N/A </if>
3832N/A
4458N/A <!-- make all the necessary directories for this test run -->
3832N/A <mkdir dir="${tests.run.dir}/${tests.run.time}"/>
3832N/A <mkdir dir="${tests.run.dir}/${tests.run.time}/config"/>
4458N/A <!-- these will serve for after-the-fact archiving the logs -->
3832N/A <mkdir dir="${tests.run.dir}/${tests.run.time}/staf-logs"/>
5061N/A <mkdir dir="${tests.run.dir}/${tests.run.time}/logs"/>
3832N/A
4458N/A <if>
4458N/A <equals arg1="${test.plan.custom}" arg2=""/>
4458N/A <then>
5061N/A <if>
5061N/A <equals arg1="${tests.type}" arg2="functional-tests"/>
5061N/A <then>
5061N/A <var name="test.plan.custom" value="${test.plan.functional.default}"/>
5061N/A </then>
5061N/A <else>
5061N/A <var name="test.plan.custom" value="${test.plan.stress.default}"/>
5061N/A </else>
5061N/A </if>
4458N/A </then>
4458N/A </if>
3832N/A
4458N/A <!-- generate the config file that will be used for this run -->
3832N/A <copy file="${tests.config.stubs}"
3832N/A tofile="${tests.run.dir}/${tests.run.time}/config/${tests.config.file}">
3832N/A <filterchain>
3832N/A <expandproperties/>
3832N/A </filterchain>
3832N/A </copy>
3832N/A
4458N/A <!-- generate the topology files that will be used for this run -->
4458N/A <copy todir="${tests.run.dir}/${tests.run.time}/config">
4458N/A <fileset dir="${tests.topology.dir}">
4458N/A <include name="**/*.txt"/>
4458N/A </fileset>
4458N/A <filterchain>
4458N/A <expandproperties/>
4458N/A </filterchain>
4458N/A </copy>
4458N/A
3832N/A <!-- this is a windows-specific measure to replace the windows file
3832N/A separator by a forward slash. Staf otherwise fails to find the files. -->
3832N/A <replace file="${tests.run.dir}/${tests.run.time}/config/${tests.config.file}" token="\" value="/"/>
3832N/A
5975N/A <property name="tests.request" value="EXECUTE FILE ${tests.xml} JOBNAME OpenDJ_${tests.type} SCRIPTFILE ${tests.run.dir}/${tests.run.time}/config/${tests.config.file} WAIT CLEARLOGS"/>
3832N/A
3832N/A <echo>While the tests are running you may tail the job logs at</echo>
5065N/A <echo>${staf.install.dir}/${staf.name}/data-${host.name}/service/log/MACHINE/${host.name}/GLOBAL</echo>
3832N/A <echo>Running tests. This will take more than a while.</echo>
4714N/A <property name="CLASSPATH" value="${staf.lib.dir}/JSTAF.jar:."/>
3832N/A <exec
3832N/A dir="${staf.bin.dir}"
3832N/A executable="${staf.executable}"
3832N/A >
3832N/A <arg line="LOCAL STAX ${tests.request}"/>
4714N/A <env key="CLASSPATH" path="${staf.lib.dir}/JSTAF.jar:."/>
3832N/A <env key="LD_LIBRARY_PATH" value="${staf.lib.dir}"/>
4714N/A <env key="STAFCONVDIR" value="${staf.install.dir}/${staf.name}/codepage"/>
3832N/A <env key="STAFCODEPAGE" value="LATIN_1"/>
3832N/A </exec>
3832N/A
5065N/A <symlink link="${tests.run.dir}/${remote.hostname}-latest" resource="${tests.run.time}" overwrite="true"/>
4458N/A <echo>Report is available at</echo>
5065N/A <echo>${tests.run.dir}/${remote.hostname}-latest</echo>
3832N/A </target>
3832N/A
3832N/A <target name="configure">
4458N/A <echo>* Tests configuration</echo>
4458N/A
4458N/A <input message=" Run the tests on the local machine or on a remote machine?"
4458N/A defaultvalue="local"
4458N/A validargs="local,remote"
4458N/A addproperty="tests.mode.input"/>
4458N/A
4458N/A <input message=" Enter local hostname:"
4458N/A defaultvalue="${local.hostname}"
4458N/A addproperty="local.hostname.input"/>
4458N/A
3832N/A <if>
4458N/A <equals arg1="${tests.mode.input}" arg2="remote"/>
3832N/A <then>
4458N/A <input message=" Enter remote hostname:"
4458N/A defaultvalue=""
4458N/A addproperty="remote.hostname.input"/>
4458N/A
4458N/A <!-- Tests-defined values -->
4458N/A <if>
4495N/A <available file="${basedir}/${tests.type}-${local.hostname.input}-${remote.hostname.input}.properties"/>
4458N/A <then>
4495N/A <var file="${basedir}/${tests.type}-${local.hostname.input}-${remote.hostname.input}.properties"/>
4458N/A </then>
4458N/A </if>
4458N/A </then>
4458N/A <else>
4458N/A <property name="remote.hostname.input" value="${local.hostname.input}"/>
4458N/A
4458N/A <!-- Tests-defined values -->
4458N/A <if>
4495N/A <available file="${basedir}/${tests.type}-${local.hostname.input}.properties"/>
4458N/A <then>
4495N/A <var file="${basedir}/${tests.type}-${local.hostname.input}.properties"/>
4458N/A </then>
4458N/A </if>
4458N/A </else>
4458N/A </if>
4458N/A
4495N/A <if>
4495N/A <equals arg1="${tests.type}" arg2="stress-tests"/>
4495N/A <then>
4495N/A <input message=" Enter client hostname:"
4495N/A defaultvalue="${client.hostname}"
4495N/A addproperty="client.hostname.input"/>
4495N/A
4495N/A <input message=" Enter ldclt path (on client machine):"
4495N/A defaultvalue="${ldclt.dir}"
4495N/A addproperty="ldclt.dir.input"/>
4495N/A </then>
4714N/A <else>
4714N/A <property name="client.hostname.input" value="${client.hostname}"/>
4714N/A <property name="ldclt.dir.input" value="${ldclt.dir}"/>
4714N/A </else>
4495N/A </if>
4495N/A
4458N/A <input message=" Enter path to logs directory:"
4458N/A defaultvalue="${logs.dir}"
4458N/A addproperty="logs.dir.input"/>
4458N/A
4458N/A <input message=" Enter path to OpenDS archive:"
4458N/A defaultvalue="${opends.dir}"
4458N/A addproperty="opends.dir.input"/>
4458N/A
4458N/A <input message=" Enter OpenDS name:"
4458N/A defaultvalue="${opends.name}"
4458N/A addproperty="opends.name.input"/>
4458N/A
4495N/A <input message=" Enter java home:"
4458N/A defaultvalue="${local.javahome}"
4458N/A addproperty="local.javahome.input"/>
4458N/A
4458N/A <if>
4458N/A <equals arg1="${tests.mode.input}" arg2="remote" />
4458N/A <then>
4458N/A <input message=" Enter java home (on remote machine):"
4458N/A defaultvalue="${remote.javahome}"
4458N/A addproperty="remote.javahome.input"/>
3832N/A </then>
3832N/A <else>
4458N/A <property name="remote.javahome.input" value="${local.javahome.input}"/>
4458N/A </else>
4458N/A </if>
4458N/A
4458N/A <if>
4458N/A <equals arg1="${tests.mode.input}" arg2="remote" />
4458N/A <then>
4458N/A <input message=" Enter directory instance directory (on remote machine):"
5061N/A defaultvalue="${instance.dir}"
5061N/A addproperty="instance.dir.input"/>
4458N/A </then>
4458N/A <else>
4495N/A <input message=" Enter directory instance directory:"
5061N/A defaultvalue="${instance.dir}"
5061N/A addproperty="instance.dir.input"/>
4458N/A </else>
4458N/A </if>
4458N/A
4495N/A <input message=" Enter OpenDMK lib directory:"
4495N/A defaultvalue="${snmp.opendmk.lib.dir}"
4495N/A addproperty="snmp.opendmk.lib.dir.input"/>
4495N/A
4458N/A <input message=" Use default directory instance?"
4458N/A defaultvalue="${tests.default}"
4458N/A validargs="true,false"
4458N/A addproperty="tests.default.input"/>
4458N/A <if>
4458N/A <equals arg1="${tests.default.input}" arg2="false"/>
4458N/A <then>
4458N/A <input message=" Enter OpenDS ldap port:"
4458N/A defaultvalue="${opends.port.ldap}"
4458N/A addproperty="opends.port.ldap.input"/>
4458N/A <input message=" Enter OpenDS admin port:"
4458N/A defaultvalue="${opends.port.admin}"
4458N/A addproperty="opends.port.admin.input"/>
4458N/A <input message=" Enter OpenDS secure ldap port:"
4458N/A defaultvalue="${opends.port.ldaps}"
4458N/A addproperty="opends.port.ldaps.input"/>
4458N/A <input message=" Enter OpenDS admin DN (also called root DN):"
4458N/A defaultvalue="${opends.admin.dn}"
4458N/A addproperty="opends.admin.dn.input"/>
4458N/A <input message=" Enter OpenDS admin password:"
4458N/A defaultvalue="${opends.admin.pwd}"
4458N/A addproperty="opends.admin.pwd.input"/>
4458N/A </then>
4458N/A <else>
4458N/A <property name="opends.port.ldap.input" value="${opends.port.ldap}"/>
4458N/A <property name="opends.port.admin.input" value="${opends.port.admin}"/>
4458N/A <property name="opends.port.ldaps.input" value="${opends.port.ldaps}"/>
4458N/A <property name="opends.admin.dn.input" value="${opends.admin.dn}"/>
4458N/A <property name="opends.admin.pwd.input" value="${opends.admin.pwd}"/>
4458N/A </else>
4458N/A </if>
4458N/A
4458N/A <input message=" Run tests using verbose mode?"
4458N/A defaultvalue="${verbose.mode}"
4458N/A validargs="true,false"
4458N/A addproperty="verbose.mode.input"/>
4458N/A
4458N/A <echo>* Test plan configuration</echo>
4458N/A <if>
4458N/A <equals arg1="${test.plan.custom}" arg2=""/>
4458N/A <then>
4458N/A <echo> No previous customized test plan found.</echo>
4458N/A <property name="prompt" value="y"/>
4458N/A </then>
4458N/A <else>
4458N/A <echo> A previously customized test plan was detected:</echo>
4458N/A <echo> ${test.plan.custom}</echo>
4458N/A <echo></echo>
4458N/A <input message=" Do you want to change the list of suites to run?"
4458N/A validargs="y,n"
4458N/A defaultvalue="n"
4458N/A addproperty="prompt"/>
3832N/A </else>
3832N/A </if>
3832N/A <if>
4458N/A <equals arg1="${prompt}" arg2="y" />
3832N/A <then>
4458N/A <var name="test.plan.custom" value=""/>
4458N/A <input message=" Do you want to execute all the tests?"
4458N/A validargs="y,n"
4458N/A defaultvalue="y"
4458N/A addproperty="answer"/>
4458N/A <if>
4458N/A <equals arg1="${answer}" arg2="y" />
4458N/A <then>
4495N/A <if>
4495N/A <equals arg1="${tests.type}" arg2="functional-tests"/>
4495N/A <then>
4495N/A <var name="test.plan.custom" value="${test.plan.functional.default}"/>
4495N/A </then>
4495N/A <else>
4495N/A <var name="test.plan.custom" value="${test.plan.stress.default}"/>
4495N/A </else>
4495N/A </if>
4458N/A </then>
4458N/A <else>
4458N/A <for param="item">
4458N/A <dirset dir="${tests.dir}/testcases"
4458N/A includes="*"
4458N/A excludes="quickstart,sample">
4458N/A <type type="dir"/>
4458N/A </dirset>
4458N/A
4458N/A <sequential>
4458N/A <var name="test" unset="true"/>
4458N/A <var name="answer" unset="true"/>
3832N/A
4458N/A <basename property="test" file="@{item}"/>
4458N/A <input message=" Do you want to execute ${test}?"
4458N/A validargs="y,n"
4458N/A defaultvalue="y"
4458N/A addproperty="answer"/>
4458N/A <if>
4458N/A <equals arg1="${answer}" arg2="y" />
4458N/A <then>
4458N/A <if>
4458N/A <equals arg1="${test.plan.custom}" arg2=""/>
4458N/A <then>
4458N/A <var name="test.plan.custom" value="${test}"/>
4458N/A </then>
4458N/A <else>
4458N/A <var name="test.plan.custom" value="${test.plan.custom},${test}"/>
4458N/A </else>
4458N/A </if>
4458N/A </then>
4458N/A </if>
4458N/A </sequential>
4458N/A </for>
4458N/A </else>
4458N/A </if>
3832N/A </then>
3832N/A </if>
4458N/A
4458N/A <echo>Saving ...</echo>
4458N/A <if>
4458N/A <equals arg1="${tests.mode.input}" arg2="remote"/>
4458N/A <then>
4495N/A <property name="property.file" value="${tests.type}-${local.hostname.input}-${remote.hostname.input}.properties"/>
4458N/A </then>
4458N/A <else>
4495N/A <property name="property.file" value="${tests.type}-${local.hostname.input}.properties"/>
4458N/A </else>
4458N/A </if>
4458N/A <echo file="${basedir}/${property.file}"># Tests-defined values
4458N/A# This file is generated by "build tests-configure" command
4458N/Atests.mode=${tests.mode.input}
4458N/Alocal.hostname=${local.hostname.input}
4458N/Alocal.javahome=${local.javahome.input}
4458N/Aremote.hostname=${remote.hostname.input}
4458N/Aremote.javahome=${remote.javahome.input}
4495N/Aclient.hostname=${client.hostname.input}
4458N/Alogs.dir=${logs.dir.input}
4458N/Aopends.dir=${opends.dir.input}
4458N/Aopends.name=${opends.name.input}
5061N/Atests.tmp.dir=${instance.dir.input}
4458N/Atests.default=${tests.default.input}
5061N/Ainstance.bin=${instance.dir.input}
5061N/Ainstance.dir=${instance.dir.input}
4458N/Aopends.port.ldap=${opends.port.ldap.input}
4458N/Aopends.port.admin=${opends.port.admin.input}
4458N/Aopends.port.ldaps=${opends.port.ldaps.input}
4458N/Aopends.admin.dn=${opends.admin.dn.input}
4458N/Aopends.admin.pwd=${opends.admin.pwd.input}
4458N/Asnmp.opendmk.lib.dir=${snmp.opendmk.lib.dir.input}
4495N/Aldclt.dir=${ldclt.dir.input}
4458N/Averbose.mode=${verbose.mode.input}
4978N/Awc.type=tomcat
5061N/Atest.plan.custom=${test.plan.custom}
5061N/Aoriginal.archive=${opends.dir.input}/${opends.name.input}.zip</echo>
3832N/A </target>
3832N/A
3832N/A <target name="coverage-init">
3832N/A <path id="emma.lib">
3832N/A <pathelement location="${project.home}/ext/emma/lib/emma.jar" />
3832N/A <pathelement location="${project.home}/ext/emma/lib/emma_ant.jar" />
3832N/A </path>
3832N/A <taskdef resource="emma_ant.properties" classpathref="emma.lib" />
3832N/A </target>
5105N/A
3832N/A <target name="coverage-on" depends="coverage-init">
3832N/A <property name="coverage.on" value="true"/>
3832N/A </target>
5105N/A
3832N/A <target name="coverage-instrument" if="coverage.on">
5105N/A <delete dir="${temp.dir}/coverage-instr" />
5105N/A <mkdir dir="${temp.dir}/coverage-instr/opends" />
5105N/A <mkdir dir="${temp.dir}/coverage-instr/dsml" />
5105N/A
3832N/A <!-- unzip the original package in a temporary location to make the
3832N/A changes necessary so that the coverage tool is called
3832N/A -->
4645N/A <unzip src="${opends.dir}/${opends.name}.zip"
5105N/A dest="${temp.dir}/coverage-instr/opends"/>
5105N/A <if>
5105N/A <matches string="${product.name}" pattern="^OpenDS ."/>
5105N/A <then>
5105N/A <!-- The war file is not in the opends archive -->
5105N/A <unzip src="${opends.dir}/${opends.name}-DSML.war"
5105N/A dest="${temp.dir}/coverage-instr/dsml"/>
5105N/A </then>
5105N/A <else>
5105N/A <!-- The war file is in the opends archive -->
5105N/A <unzip src="${temp.dir}/coverage-instr/opends/${opends.name}/addons/DSML.war"
5105N/A dest="${temp.dir}/coverage-instr/dsml"/>
5105N/A </else>
5105N/A </if>
3832N/A
3832N/A <!-- Add emma in the package along with the other librairies
3832N/A this has the advantage of being automatically picked up by the scripts
3832N/A -->
3832N/A <copy file="${project.home}/ext/emma/lib/emma.jar"
5105N/A tofile="${temp.dir}/coverage-instr/opends/${opends.name}/lib/emma.jar"/>
5065N/A <copy file="${project.home}/ext/emma/lib/emma.jar"
5105N/A tofile="${temp.dir}/coverage-instr/dsml/WEB-INF/lib/emma.jar"/>
3832N/A
3832N/A <!-- move the original product package to make room for the coverage
3832N/A enabled package
3832N/A -->
4645N/A <move file="${opends.dir}/${opends.name}.zip" tofile="${opends.dir}/${opends.name}.zip.nocov"/>
5105N/A <if>
5105N/A <matches string="${product.name}" pattern="^OpenDS ."/>
5105N/A <then>
5105N/A <!-- The war file is not in the opends archive, so we need to backup the original package -->
5105N/A <move file="${opends.dir}/${opends.name}-DSML.war" tofile="${opends.dir}/${opends.name}-DSML.war.nocov"/>
5105N/A </then>
5105N/A </if>
3832N/A
3832N/A <!-- intrument the OpenDS java archive to gather coverage -->
5105N/A <java classpath="${temp.dir}/coverage-instr/opends/${opends.name}/lib/emma.jar"
3832N/A classname="emma" fork="true">
5105N/A <jvmarg value="-Demma.metadata.out.file=${temp.dir}/coverage-instr/opends/${opends.name}/coverage.em" />
4645N/A <arg value="instr" />
4645N/A <arg value="-m" />
4645N/A <arg value="overwrite" />
4645N/A <arg value="-ix" />
4645N/A <arg value="-org.opends.guitools.*" />
4645N/A <arg value="-ix" />
4645N/A <arg value="-org.opends.quicksetup.*" />
4645N/A <arg value="-ix" />
4645N/A <arg value="org.*" />
4645N/A <arg value="-ix" />
4645N/A <arg value="com.*" />
4645N/A <arg value="-ip" />
5105N/A <arg value="${temp.dir}/coverage-instr/opends/${opends.name}/lib/OpenDS.jar:${temp.dir}/coverage-instr/opends/${opends.name}/lib/extensions/snmp-mib2605.jar" />
3832N/A </java>
4645N/A
5105N/A <java classpath="${temp.dir}/coverage-instr/dsml/WEB-INF/lib/emma.jar"
5065N/A classname="emma" fork="true">
5116N/A <jvmarg value="-Demma.metadata.out.file=${temp.dir}/coverage-instr/opends/${opends.name}/coverage.em" />
5065N/A <arg value="instr" />
5116N/A <arg value="-merge" />
5116N/A <arg value="yes" />
5065N/A <arg value="-m" />
5065N/A <arg value="overwrite" />
5065N/A <arg value="-ix" />
5065N/A <arg value="-org.opends.guitools.*" />
5065N/A <arg value="-ix" />
5065N/A <arg value="-org.opends.quicksetup.*" />
5065N/A <arg value="-ix" />
5065N/A <arg value="org.*" />
5065N/A <arg value="-ix" />
5065N/A <arg value="com.*" />
5065N/A <arg value="-ip" />
5105N/A <arg value="${temp.dir}/coverage-instr/dsml/WEB-INF/classes" />
5065N/A </java>
5105N/A
5105N/A <!-- Repackage DSML Gateway the product with coverage enabled scripts -->
5105N/A <if>
5105N/A <matches string="${product.name}" pattern="^OpenDS ."/>
5105N/A <then>
5105N/A <!-- The war file is not in the opends archive, so we need to repackage the war file -->
5116N/A <zip basedir="${temp.dir}/coverage-instr/dsml" destfile="${opends.dir}/${opends.name}-DSML.war"/>
5105N/A </then>
5105N/A <else>
5105N/A <!-- The war file is in the opends archive, so we need to replace the war file -->
5105N/A <delete file="${temp.dir}/coverage-instr/opends/${opends.name}/addons/DSML.war"/>
5116N/A <zip basedir="${temp.dir}/coverage-instr/dsml" destfile="${temp.dir}/coverage-instr/opends/${opends.name}/addons/DSML.war"/>
5105N/A </else>
5105N/A </if>
5105N/A
5065N/A <!-- Repackage OpenDS the product with coverage enabled scripts -->
5116N/A <zip basedir="${temp.dir}/coverage-instr/opends"
5116N/A destfile="${opends.dir}/${opends.name}.zip"
5116N/A excludes="${opends.name}/setup,${opends.name}/uninstall,${opends.name}/upgrade,${opends.name}/bin/*,${opends.name}/lib/*.sh">
5116N/A <zipfileset dir="${temp.dir}/coverage-instr/opends"
5116N/A includes="${opends.name}/setup,${opends.name}/uninstall,${opends.name}/upgrade,${opends.name}/bin/*,${opends.name}/lib/*.sh"
5116N/A filemode="755" dirmode="755"/>
3832N/A </zip>
5065N/A
5105N/A <delete dir="${temp.dir}/coverage-instr"/>
5105N/A </target>
5065N/A
4645N/A <target name="restore-pkg" if="coverage.on">
4645N/A <delete file="${opends.dir}/${opends.name}.zip"/>
4645N/A <move file="${opends.dir}/${opends.name}.zip.nocov" tofile="${opends.dir}/${opends.name}.zip"/>
5105N/A <if>
5105N/A <matches string="${product.name}" pattern="^OpenDS ."/>
5105N/A <then>
5105N/A <!-- The war file is not in the opends archive, so we need to restore the original package -->
5105N/A <delete file="${opends.dir}/${opends.name}-DSML.war"/>
5105N/A <move file="${opends.dir}/${opends.name}-DSML.war.nocov" tofile="${opends.dir}/${opends.name}-DSML.war"/>
5105N/A </then>
5105N/A </if>
5105N/A
3832N/A </target>
5105N/A
4645N/A <target name="testwithcoverage" depends="coverage-on,coverage-instrument,run,restore-pkg"/>
3832N/A
3832N/A</project>