From f9a2fa9a3bfdee01e9273f51fd20ec25006bb7b6 Mon Sep 17 00:00:00 2001
From: al_xipe <al_xipe@localhost>
Date: Fri, 13 Oct 2006 05:37:10 +0000
Subject: [PATCH] finalize the move to ant for the integration tests
---
opends/tests/integration-tests-testng/build.xml | 226 ++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 202 insertions(+), 24 deletions(-)
diff --git a/opends/tests/integration-tests-testng/build.xml b/opends/tests/integration-tests-testng/build.xml
index bb6b333..e6b57a3 100644
--- a/opends/tests/integration-tests-testng/build.xml
+++ b/opends/tests/integration-tests-testng/build.xml
@@ -25,62 +25,240 @@
! Portions Copyright 2006 Sun Microsystems, Inc.
! -->
-<project name="Directory Server" basedir="." default="all">
+<project name="opends-tests-integration" basedir="." default="all">
<description>
This is the build script for the functional tests for the
OpenDS Directory Server. See the
BUILDING file in this directory for build instructions.
</description>
+
+ <!-- General build-wide properties -->
+ <property name="opends.dir" location="../.." />
+ <property name="tests.src.dir" location="src/server" />
+ <property name="tests.build.dir"
+ location="${opends.dir}/build/integration-tests" />
+ <property name="lib.dir" location="${opends.dir}/lib" />
+ <property name="ext.dir" location="${opends.dir}/ext" />
+ <property name="testng.dir" location="${ext.dir}/testng" />
+ <property name="testng.lib.dir" location="${testng.dir}/lib" />
- <!-- General server-wide properties -->
- <property name="opends.dir" location="../.." />
- <property name="src.dir" location="src/server" />
- <property name="built.dir"
- location="${opends.dir}/build/integration-tests" />
- <property name="ds.classes" location="${opends.dir}/build/classes" />
- <property name="lib.dir" location="${opends.dir}/lib" />
- <property name="ext.dir" location="${opends.dir}/ext" />
+ <property name="opends.build.dir" location="${opends.dir}/build" />
+ <property name="opends.package.dir" location="${opends.build.dir}/package" />
+ <property name="opends.classes" location="${opends.build.dir}/classes" />
+ <!-- default configuration values for opends -->
+ <property name="install.dir.default" value="${basedir}/install" />
+ <property name="product.version" value="0.1" />
+ <property name="product.name" value="OpenDS" />
+ <!-- generate the timestamp we'll use to tag/store the test results -->
+ <tstamp>
+ <format property="run.time" pattern="yyyy.mm.dd-HH.mm.ss" />
+ </tstamp>
+
+ <!-- assertion to determine the operating system -->
+ <condition property="isWindows">
+ <os family="windows"/>
+ </condition>
+ <condition property="isUnix">
+ <not>
+ <os family="windows"/>
+ </not>
+ </condition>
+
+ <!-- edit or create this file if you need custom port or install path
+ it can have any of the following properties
+ port.ldap
+ install.dir
+ -->
+ <property file="integration-tests.properties" />
+
<!-- The build target that should be used to build everything. -->
<target name="all"
- depends="clean,functests"
+ depends="uninstall,clean,tests,install,configure,start,run-tests,stop"
description="Build using all defined targets." />
<!-- Remove all dynamically-generated build files. -->
<target name="clean"
description="Clean up any files generated during the build process">
-
- <delete dir="${built.dir}" />
+ <delete dir="${tests.build.dir}" />
</target>
+
+ <!-- Compile the functional tests source files. -->
+ <target name="tests"
+ description="Compile the functional tests source files.">
+ <mkdir dir="${tests.build.dir}" />
- <!-- Compile the Directory Server source files. -->
- <target name="functests"
- description="Compile the functional test source files.">
-
- <mkdir dir="${built.dir}" />
-
- <javac srcdir="${src.dir}" destdir="${built.dir}" optimize="true"
+ <javac srcdir="${tests.src.dir}" destdir="${tests.build.dir}" optimize="true"
debug="on" debuglevel="lines,source" source="1.5" target="1.5"
deprecation="true" fork="true" >
<compilerarg value="-Xlint:all" />
-
<classpath>
+ <!-- libraries required to build -->
<fileset dir="${lib.dir}">
<include name="*.jar" />
</fileset>
-
- <fileset dir="${ext.dir}">
+ <!-- include the testng library to build the test cases -->
+ <fileset dir="${testng.lib.dir}">
<include name="*.jar" />
</fileset>
-
- <pathelement location="${ds.classes}" />
+ <pathelement location="${opends.classes}" />
</classpath>
</javac>
</target>
+
+ <target name="run-tests"
+ description="run the integration test suite"
+ depends="set-default-install-props">
+ <taskdef resource="testngtasks">
+ <classpath>
+ <fileset dir="${testng.lib.dir}">
+ <include name="*.jar" />
+ </fileset>
+ </classpath>
+ </taskdef>
+
+ <property name="run.dir" value="${basedir}/run/${run.time}" />
+ <mkdir dir="${run.dir}" />
+ <mkdir dir="${run.dir}/logs" />
+ <mkdir dir="${run.dir}/backup" />
+ <mkdir dir="${run.dir}/report" />
+ <echo message="generating tests xml file ..."/>
+ <copy file="testng.xml.stubs"
+ tofile="testng.xml"
+ overwrite="true" >
+ <filterchain>
+ <expandproperties/>
+ </filterchain>
+ </copy>
+ <fileset id="testng.xml" dir="${basedir}" >
+ <include name="testng.xml" />
+ </fileset>
+ <testng outputdir="${run.dir}/report"
+ haltonfailure="true"
+ enableAssert="false"
+ listener="org.opends.server.OpenDSTestListener"
+ dumpCommand="true">
+ <classpath>
+ <!-- where to get the testng library -->
+ <fileset dir="${testng.lib.dir}">
+ <include name="*.jar" />
+ </fileset>
+ <!-- where to get the test classes -->
+ <pathelement location="${tests.build.dir}" />
+ <!-- where to get the server classes -->
+ <pathelement location="${opends.classes}"/>
+ </classpath>
+
+ <!-- where to get the test suite definition -->
+ <xmlfileset dir="${basedir}" includes="testng.xml"/>
+ </testng>
+ </target>
+
+ <target name="set-default-install-props"
+ description="defines the default values if no custom values were provided">
+ <property name="install.dir" value="${install.dir.default}" />
+ <property name="port.ldap" value="1389" />
+ <property name="port.ssl" value="1636" />
+ <property name="host.name" value="localhost" />
+ <property name="bindDN" value="cn=Directory Manager" />
+ <property name="password" value="password" />
+ <property name="full.install.dir"
+ value="${install.dir}/${product.name}-${product.version}" />
+ </target>
+
+ <target name="install"
+ description="deploy the server bits"
+ depends="set-default-install-props" >
+ <property name="config.file"
+ location="${full.install.dir}/config/config.ldif"/>
+ <!-- Set the defaults
+ Does not override the custom values provided in the
+ integration-tests.properties file if any -->
+ <mkdir dir="${install.dir}"/>
+ <unzip dest="${install.dir}">
+ <fileset dir="${opends.package.dir}">
+ <include name="*.zip"/>
+ </fileset>
+ </unzip>
+ </target>
+
+ <target name="configure"
+ description="configures opends to listen on the right port number"
+ depends="set-default-install-props"
+ >
+ <java classname="org.opends.server.tools.ConfigureDS">
+ <!-- building the classpath to run the configurator -->
+ <classpath>
+ <pathelement path="${full.install.dir}/classes"/>
+ <fileset dir="${full.install.dir}">
+ <include name="lib/*.jar"/>
+ </fileset>
+ </classpath>
+
+ <!-- provide the arguments here -->
+ <arg value="--configClass" />
+ <arg value="org.opends.server.config.ConfigFileHandler" />
+ <arg value="--configFile" />
+ <arg value="${full.install.dir}/config/config.ldif" />
+ <arg line="-p ${port.ldap}" />
+ </java>
+ </target>
+
+ <!-- Windows specific start / stop / configure commands -->
+ <target name="start-windows" if="isWindows">
+ <echo message="Starting in the background ..."/>
+ <exec
+ executable="${full.install.dir}\bin\start-ds.bat"
+ spawn="true" />
+ </target>
+ <target name="stop-windows" if="isWindows" >
+ <echo message="Stopping ..." />
+ <exec
+ executable="${full.install.dir}\bin\stop-ds.bat">
+ <arg line="-h ${host.name}"/>
+ <arg line="-p ${port.ldap}"/>
+ <arg line="-w ${password}"/>
+ <arg value="-D"/>
+ <arg value="${bindDN}"/>
+ </exec>
+ </target>
+ <!-- Unix specific start / stop / configure commands -->
+ <target name="start-unix" if="isUnix" >
+ <echo message="Starting in the background ..."/>
+ <exec
+ executable="${full.install.dir}/bin/start-ds.sh"
+ spawn="true" />
+ </target>
+ <target name="stop-unix" if="isUnix" >
+ <echo message="Stopping ..." />
+ <exec
+ executable="${full.install.dir}/bin/stop-ds.sh" >
+ <arg line="-h ${host.name}"/>
+ <arg line="-p ${port.ldap}"/>
+ <arg line="-w ${password}"/>
+ <arg value="-D"/>
+ <arg value="${bindDN}"/>
+ </exec>
+ </target>
+
+ <!-- platform independent start / stop targets -->
+ <target name="start"
+ description="stop the server"
+ depends="set-default-install-props,start-windows,start-unix" />
+ <target name="stop"
+ description="stop the server"
+ depends="set-default-install-props,stop-windows,stop-unix" />
+
+ <target name="uninstall"
+ description="Uninstalls the server"
+ depends="set-default-install-props" >
+ <delete dir="${install.dir}" />
+ </target>
+
</project>
--
Gitblit v1.10.0