blob: 01b33247eb352b5a5c2c453615fa71ac4877afc6 [file] [log] [blame]
<?xml version="1.0"?>
<!DOCTYPE project [
<!ENTITY properties SYSTEM "xmls/properties.xml">
<!ENTITY paths SYSTEM "xmls/path_refs.xml">
<!ENTITY taskdefs SYSTEM "xmls/taskdefs.xml">
<!ENTITY taskdefs_post_compile SYSTEM "xmls/taskdefs_post_compile.xml">
<!ENTITY targets SYSTEM "xmls/targets.xml">
]>
<project default="printEnv" basedir=".">
<!-- =================================================================== -->
<description>
Test Files Build file for Axis
Notes:
This is a build file for use with the Jakarta Ant build tool.
Prerequisites:
jakarta-ant from http://jakarta.apache.org
Optional components:
SOAP Attachment support enablement:
activation.jar from http://java.sun.com/products/javabeans/glasgow/jaf.html
mailapi.jar from http://java.sun.com/products/javamail/
Security support enablement:
xmlsec.jar from fresh build of CVS from http://xml.apache.org/security/
Other support jars from http://cvs.apache.org/viewcvs.cgi/xml-security/libs/
Build Instructions:
To build, run
ant "target"
on the directory where this file is located with the target you want.
Most useful targets:
- compile : compiles the tests and WSDL files
Author:
Matt Seibert mseibert@us.ibm.com
Copyright:
Copyright (c) 2002-2003 Apache Software Foundation.
</description>
<!-- ==================================================================== -->
&properties;
&paths;
&taskdefs;
&taskdefs_post_compile;
&targets;
<!-- Give user a chance to override without editing this file
(and without typing -D each time it compiles it) -->
<property file="test.properties"/>
<property file="${user.home}/test.properties"/>
<!-- =========================================================================== -->
<target name="compile" depends="printEnv,copy">
<!-- Compile the code -->
<antcall target="compileJunit"/>
<antcall target="compileFunctional"/>
</target>
<target name="compileJunit" depends="printEnv,copy">
<!-- Compile the code -->
<foreach target="component-compile" fork="${foreach.fork}" inheritAll="${ant.inheritAll}" inheritRefs="${ant.inheritRefs}">
<param name="file">
<fileset dir="${axis.home}" >
<patternset>
<include name="test/**/build.xml"/>
<exclude name="test/wsdl/**/build.xml" />
<exclude name="test/functional/build.xml"/>
<!-- TODO: these tests are not working because they rely on a 3rd party service that is no longer available -->
<exclude name="test/client/build.xml"/>
</patternset>
</fileset>
</param>
</foreach>
</target>
<target name="compileFunctional" depends="printEnv,copy">
<!-- Compile the code -->
<foreach target="component-compile" fork="${foreach.fork}" inheritAll="${ant.inheritAll}" inheritRefs="${ant.inheritRefs}">
<param name="file">
<fileset dir="${axis.home}" >
<patternset>
<include name="test/wsdl/**/build.xml" />
<include name="test/rpc/**/build.xml" />
<include name="test/functional/build.xml"/>
<exclude name="test/wsdl/attachments/**/build.xml" unless="attachments.present"/>
<exclude name="test/wsdl/interop3/**/build.xml" />
<exclude name="test/wsdl/adaptive/**/build.xml" />
<!-- TODO: AXIS-2865 -->
<exclude name="test/wsdl/liberty/build.xml"/>
</patternset>
</fileset>
</param>
</foreach>
</target>
<!-- =================================================================== -->
<!-- Compiles the JUnit testcases -->
<!-- =================================================================== -->
<!-- =================================================================== -->
<!-- Runs the JUnit package testcases -->
<!-- =================================================================== -->
<target name="junit" if="junit.present">
<available file="${axis.home}/junit-exclude-tests.txt" property="junit-exclude-tests.present"/>
<junit printsummary="yes" haltonfailure="${test.functional.fail}" fork="yes">
<jvmarg value="-Xbootclasspath:${sun.boot.class.path}"/>
<classpath refid="classpath" />
<formatter type="xml" />
<batchtest todir="${test.functional.reportdir}">
<fileset dir="${build.dir}/classes">
<!-- Convention: each package that's being tested
has its own test class collecting all the tests -->
<include name="**/PackageTests.class" />
<excludesfile name="${axis.home}/junit-exclude-tests.txt" if="junit-exclude-tests.present"/>
<!-- <include name="**/test/*TestSuite.class"/> -->
</fileset>
</batchtest>
</junit>
</target>
<!-- =================================================================== -->
<!-- Functional tests, no server (for testing under debugger) -->
<!-- =================================================================== -->
<target name="functional-tests-noserver">
<ant inheritAll="${ant.inheritAll}" inheritRefs="${ant.inheritRefs}" dir="${axis.home}/test" antfile="build_functional_tests.xml" target="junit-functional-noserver">
<property name="test.functional.usefile" value="${test.functional.usefile}"/>
</ant>
</target>
<!-- =================================================================== -->
<!-- Cleans everything -->
<!-- =================================================================== -->
<target name="clean">
<delete dir="${build.dir}/test"/>
</target>
<target name="copy"/>
<!-- =================================================================== -->
<!-- Prepares the JUnit functional test -->
<!-- =================================================================== -->
<target name="junit-functional-prepare" if="junit.present">
<path id="deploy.xml.files">
<fileset dir="${build.dir}/work">
<include name="**/deploy.wsdd"/>
<exclude name="mssoapinterop/interop*/deploy.wsdd"/>
</fileset>
</path>
<path id="undeploy.xml.files">
<fileset dir="${build.dir}/work">
<include name="**/undeploy.wsdd"/>
<exclude name="mssoapinterop/interop*/undeploy.wsdd"/>
</fileset>
</path>
<property name="deploy.xml.property" refid="deploy.xml.files"/>
<property name="undeploy.xml.property" refid="undeploy.xml.files"/>
</target>
<!-- =================================================================== -->
<!-- Runs the JUnit functional test -->
<!-- =================================================================== -->
<target name="junit-functional" if="junit.present" depends="junit-functional-prepare">
<mkdir dir="${test.functional.reportdir}" />
<java classname="org.apache.axis.client.AdminClient" fork="yes">
<classpath refid="classpath" />
<arg line="${deploy.xml.property}"/>
</java>
<available file="${axis.home}/junit-exclude-tests.txt" property="junit-exclude-tests.present"/>
<!-- now, run the actual test -->
<junit dir="${axis.home}" printsummary="yes" haltonfailure="${test.functional.fail}" fork="yes">
<!-- See if this helps with Gump test failures -->
<sysproperty key="build.clonevm" value="true"/>
<!-- Pass the parser settings -->
<jvmarg value="-Djavax.xml.parsers.DocumentBuilderFactory=${javax.xml.parsers.DocumentBuilderFactory}"/>
<jvmarg value="-Djavax.xml.parsers.SAXParserFactory=${javax.xml.parsers.SAXParserFactory}"/>
<jvmarg value="-Xbootclasspath:${sun.boot.class.path}"/>
<jvmarg value="-Djikes.class.path=${jikes.class.path}"/>
<!-- Pass through the proxy parameters -->
<jvmarg value="-Dhttp.proxyHost=${http.proxyHost}"/>
<jvmarg value="-Dhttp.proxyPort=${http.proxyPort}"/>
<jvmarg value="-Dhttp.nonProxyHosts=${http.nonProxyHosts}"/>
<jvmarg value="-Dhttp.proxyUser=${http.proxyUser}"/>
<jvmarg value="-Dhttp.proxyPassword=${http.proxyPassword}"/>
<!-- Pass the port for SimpleAxisServer -->
<jvmarg value="-Dtest.functional.SimpleAxisPort=${test.functional.SimpleAxisPort}"/>
<jvmarg value="-Dtest.functional.ServicePort=${test.functional.ServicePort}"/>
<classpath refid="classpath" />
<formatter type="xml" usefile="${test.functional.usefile}"/>
<batchtest todir="${test.functional.reportdir}">
<fileset dir="${build.dest}">
<!-- Convention: each package that's being tested
has its own test class collecting all the tests -->
<include name="**/FunctionalTests.class" />
<include name="**/*TestCase.class" />
<exclude name="**/Interop3TestCase.class"/>
<exclude name="**/DataServiceTestCase.class"/>
<exclude name="**/WhiteMesaSoap12TestSvcTestCase.class"/>
<exclude name="**/test/wsdl/attachments/**/*.class" unless="attachments.present" />
<exclude name="**/test/wsdl/adaptive/**/*.class"/>
<excludesfile name="${axis.home}/junit-exclude-tests.txt" if="junit-exclude-tests.present"/>
</fileset>
</batchtest>
</junit>
<java classname="org.apache.axis.client.AdminClient" fork="yes">
<classpath refid="classpath" />
<arg line="${undeploy.xml.property}"/>
</java>
</target>
<target name="junit-functional-secure" if="junit.present" depends="junit-functional-prepare,start-signature-signing-and-verification">
<available file="${axis.home}/junit-exclude-tests.txt" property="junit-exclude-tests.present"/>
<!-- now, run the actual test -->
<junit dir="${axis.home}" printsummary="yes" haltonfailure="${test.functional.fail}" fork="yes">
<classpath refid="classpath" />
<formatter type="xml" usefile="${test.functional.usefile}"/>
<batchtest todir="${test.functional.reportdir}">
<fileset dir="${build.dest}">
<!-- Convention: each package that's being tested
has its own test class collecting all the tests -->
<include name="**/TestBidBuySample.class" />
<exclude name="**/Interop3TestCase.class"/>
<excludesfile name="${axis.home}/junit-exclude-tests.txt" if="junit-exclude-tests.present"/>
</fileset>
</batchtest>
</junit>
</target>
<!-- =================================================================== -->
<!-- Run functional tests -->
<!-- =================================================================== -->
<target name="functional-tests" depends="printEnv,transport-layer" if="junit.present" >
<!-- This uses a custom Ant task. See test/functional/ant/RunAxisFunctionalTests.java -->
<!-- This pattern taken from Cactus, http://jakarta.apache.org/commons/cactus -->
<runaxisfunctionaltests
url="http://localhost:8088"
tcpServerTarget="start-functional-test-tcp-server"
httpServerTarget="start-functional-test-http-server"
testTarget="junit-functional"
httpStopTarget="stop-functional-test-http-server" />
<!-- now run security test -->
<antcall target="functional-tests-secure"/>
</target>
<!-- =================================================================== -->
<!-- Run secure functional tests ONLY -->
<!-- =================================================================== -->
<target name="functional-tests-secure" if="security.present">
<runaxisfunctionaltests
url="http://localhost:8088"
tcpServerTarget="start-functional-test-tcp-server"
httpServerTarget="start-functional-test-http-server-secure"
testTarget="junit-functional-secure"
httpStopTarget="stop-functional-test-http-server-secure" />
</target>
<!-- =================================================================== -->
<!-- Run simple tests -->
<!-- =================================================================== -->
<target name="simple-tests" depends="setenv" if="junit.present" >
<runaxisfunctionaltests
url="http://localhost:8088"
tcpServerTarget="start-functional-test-tcp-server"
httpServerTarget="start-functional-test-http-server"
testTarget="printEnv"
httpStopTarget="stop-functional-test-http-server" />
</target>
<!-- =================================================================== -->
<!-- This simply echos the component files, for sanity checks -->
<!-- =================================================================== -->
<target name="echoTest" >
<foreach target="echo-file" fork="${foreach.fork}" inheritAll="${ant.inheritAll}" inheritRefs="${ant.inheritRefs}">
<param name="file">
<fileset dir="${axis.home}" >
<patternset>
<include name="test/**/build.xml"/>
<exclude name="test/wsdl/interop3/**/build.xml" />
</patternset>
</fileset>
</param>
</foreach>
</target>
<!-- =================================================================== -->
<!-- This runs each test component, instantiating the server each time -->
<!-- =================================================================== -->
<target name="componentTest" >
<foreach target="batch-component-run" fork="${foreach.fork}" inheritAll="${ant.inheritAll}" inheritRefs="${ant.inheritRefs}">
<param name="file">
<fileset dir="${axis.home}" >
<patternset>
<include name="test/**/build.xml"/>
<exclude name="test/wsdl/interop3/**/build.xml" />
</patternset>
</fileset>
</param>
</foreach>
</target>
<!-- =================================================================== -->
<!-- This runs all the tests, but only execs the server ONCE -->
<!-- =================================================================== -->
<target name="batchTest" depends="transport-layer">
<runaxisfunctionaltests
url="http://localhost:${test.functional.TCPListenerPort}"
tcpServerTarget="start-functional-test-tcp-server"
httpServerTarget="start-functional-test-http-server"
testTarget="batch-junit-functional"
httpStopTarget="stop-functional-test-http-server" />
<ant inheritAll="${ant.inheritAll}" inheritRefs="${ant.inheritRefs}" dir="${axis.home}/test/functional" antfile="build.xml" target="run"/>
</target>
<target name="batch-junit-functional" depends="start-signature-signing-and-verification">
<foreach target="batch-component-test" fork="${foreach.fork}" inheritAll="${ant.inheritAll}" inheritRefs="${ant.inheritRefs}">
<param name="file">
<fileset dir="${axis.home}" >
<patternset>
<include name="test/**/build.xml"/>
<exclude name="test/wsdl/interop/build.xml" />
<exclude name="test/wsdl/interop3/**/build.xml" />
</patternset>
</fileset>
</param>
</foreach>
</target>
<!-- generate a report from all the tests.
requires Xalan or other XSLT engine in ant\lib-->
<target name="create-test-report" description="create the test report" >
<mkdir dir="${test.reports.dir}"/>
<junitreport todir="${test.functional.reportdir}">
<fileset dir="${test.functional.reportdir}">
<include name="TEST-*.xml"/>
</fileset>
<report format="frames" todir="${test.reports.dir}" styledir="xmls"/>
</junitreport>
</target>
</project>