<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE project [
<!--

    Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<!ENTITY commonSetup SYSTEM "file:./config/properties.xml">
<!ENTITY commonBuild SYSTEM "file:./config/common.xml">
<!ENTITY commonEEBuild SYSTEM "file:./config/ee-common.xml">
<!ENTITY reporting SYSTEM "file:./config/report.xml">
<!ENTITY run SYSTEM "file:./config/run.xml">
<!ENTITY mail SYSTEM "file:./config/mail.xml">
]>

<project name="appserv-tests" default="usage" basedir=".">

    &commonSetup;
    &commonBuild;
    &commonEEBuild;
    &reporting;
    &run;
    &mail;

    <target name="all">
        <antcall target="sqetests"/>
    </target>

    <target name="all-ee" depends="clean">
    <record name="runtest.output" action="start"/>
        <ant dir="sqetests" target="run-eesqe-target"/>
        <antcall target="report"/>
        <antcall target="mail"/>
    <record name="runtest.output" action="stop"/>
    </target>

    <target name="all-pe" depends="clean">
    <record name="runtest.output" action="start"/>
        <antcall target="startDerby"/>
        <antcall target="startDomain"/>
        <antcall target="sqetests"/>
        <antcall target="stopDerby"/>
        <antcall target="stopDomain"/>
        <antcall target="create-report"/>
        <antcall target="mail"/>
        <antcall target="report-java"/>
    <record name="runtest.output" action="stop"/>
    </target>

    <target name="only-ee" depends="ee-init, ee">
    <record name="appserv-tests.log" action="start"/>
        <antcall target="rename_results"/>
        <record name="runtest.output" action="start"/>
            <echo message="value of ee: ${ee}"/>
            <ant dir="sqetests" target="run-eesqe-target"/>
            <antcall target="stopee"/>
            <antcall target="stopDerby"/>
            <antcall target="create-report"/>
            <antcall target="mail"/>
            <antcall target="report-java"/>
        <record name="runtest.output" action="stop"/>
    <record name="appserv-tests.log" action="stop"/>
    </target>

    <!-- clean -->
    <target name="clean">
        <delete failonerror="false">
            <fileset dir="${env.APS_HOME}" excludes="PE_*"
                     includes="count.txt *.output test_results*"/>
        </delete>
    </target>

    <!-- clobber -->
    <target name="clobber-tests" depends="init-common">
        <delete dir="${build.classes.dir}"/>
        <delete failonerror="false">
            <fileset dir="${env.APS_HOME}"
                     includes="*count.txt *.output *test_results*"/>
        </delete>
    </target>

    <!-- ee-init -->
    <target name="ee-init">
        <antcall target="startDerby"/>
        <antcall target="eeunsetup"/>
        <echo message="eeunsetup done..."/>
        <echo message="Spawning eesetup.."/>
        <antcall target="eesetup"/>
        <echo message="eesetup done..."/>
    </target>

<target name="show-list">
    <echo>
         ============ Expected Outputs ==============
         Executing ejb/stateless/converter [Total :1]
         Executing ejb/mdb/simple [Total :1]
         Executing ejb/bmp/enroller [Total :1]
         Executing ejb/cmp/roster [Total :3]
         Executing ejb/ejb30/hello/session [Total :1]
         Executing corba [Total :1]
         Executing connector/cci [Total :1]
         Executing jndi/url  [Total :1]
         Executing transaction/txglobal [Total :1]
         Executing security/integration [Total :1]
         Executing web/subclassing [Total :3]
         ===========================================
        </echo>

    </target>

    <target name="sqetests">
        <record name="sqetests.output" action="start" />
            <ant dir="sqetests" target="all"/>
        <record name="sqetests.output" action="stop" />
    </target>

    <target name="setupMQ" depends="setup-mq-common" />

    <target name="usage">
    <echo>
        Usage:
            ant sqetests (Executes all sqetests tests)
            ant all (Executes all sqetests)
            ant show-list (Lists all test suites)
    </echo>
    </target>
</project>
