<?xml version="1.0" encoding="UTF-8"?>
<!--
    Copyright (c) 2009, 2019 IBM Corporation and others.
    This program and the accompanying materials
    are made available under the terms of the Eclipse Public License 2.0
    which accompanies this distribution, and is available at
    https://www.eclipse.org/legal/epl-2.0/

    SPDX-License-Identifier: EPL-2.0

    Contributors:
        IBM Corporation - initial API and implementation
 -->

<project
    name="testsuite"
    default="run"
    basedir=".">

    <!-- 
         The following properties should be passed into this script
         so we'll fail fast if not. 
             ${eclipse-home}   
             ${buildDirectory}
             ${buildLabel}        
    -->
  
  	<fail
        message="Error: missing property. eclipse-home must be provided"
        unless="eclipse-home" />
    <fail
        message="Error: missing property. buildDirectory must be provided"
        unless="buildDirectory" />
    <fail
        message="Error: missing property. buildLabel must be provided"
        unless="buildLabel" />
	
    <!-- should be little need to change what's above  -->
	
    <property
        name="plugin-name"
        value="org.eclipse.jst.ws.cxf.tests"/>
    <property
        name="classname"
        value="org.eclipse.jst.ws.cxf.tests.AllTestsSuite"/>
    <property
        name="testType"
        value="ui-test"/>

    <!-- should be little need to change what's below -->
    <echo
        message="basedir: ${basedir}"/>
    <echo
        message="eclipse-home: ${eclipse-home}"/>
    <echo
        message="buildDirectory: ${buildDirectory}"/>
    <echo
        message="plugin-name: ${plugin-name}"/>
    <echo
        message="classname: ${classname}"/>
    <echo
        message="testType ${testType}"/>
    <property
        name="library-file"
        value="${eclipse-home}/plugins/org.eclipse.test_3.1.0/library.xml"/>
    <property
        name="workspace"
        value="${eclipse-home}/junitworkspaces/${plugin-name}"/>
	  <echo 
	      message="workspace: ${workspace}" />
    <!--
        This init target holds all initialization code that needs to be done
        for all tests that are to be run. Initialization for individual
        tests should be done within the body of the suite target. 
    -->
    <target
        name="init">
        <tstamp/>
        <delete>
            <fileset
                dir="${eclipse-home}"
                includes="${plugin-name}.*xml"/>
        </delete>
        <!-- make directory, in case path doesn't exist yet -->
        <mkdir
            dir="${workspace}"/>
        <!--  but delete to make sure fresh contents-->
        <delete
            dir="${workspace}"
            quiet="true"/>
    </target>

    <!-- This target defines the tests that need to be run. -->
    <target
        name="suite">
        <ant
            target="${testType}"
            antfile="${library-file}"
            dir="${eclipse-home}">
            <property
                name="data-dir"
                value="${workspace}"/>
            <property
                name="plugin-name"
                value="${plugin-name}"/>
            <property
                name="classname"
                value="${classname}"/>
            <property
                name="plugin-path"
                value="${eclipse-home}/plugins/${plugin-name}"/>
        </ant>
        <copy
            failonerror="false"
            file="${workspace}/.metadata/.log"
            tofile="${buildDirectory}/${buildLabel}/testResults/consolelogs/${plugin-name}.consolelog.txt"/>
    </target>

    <!-- This target holds code to cleanup the testing environment after -->
    <!--
        after all of the tests have been run. You can use this target to
    -->
    <!-- delete temporary files that have been created. -->
    <target
        name="cleanup">
        <!--
            usually no need to delete workspace until next run, and
            leaving it allows inspection
        -->
        <!-- <delete dir="${workspace}" quiet="true" /> -->
    </target>
    <!--
        This target runs the test suite. Any actions that need to happen
    -->
    <!-- after all the tests have been run should go here. -->
    <target
        name="run"
        depends="init,suite,cleanup">
        <ant
            target="collect"
            antfile="${library-file}"
            dir="${eclipse-home}">
            <property
                name="includes"
                value="${plugin-name}.*xml"/>
            <property
                name="output-file"
                value="${plugin-name}.xml"/>
        </ant>
    </target>
</project>