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

    Copyright (c) 2010, 2020 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

-->

<!DOCTYPE project [
<!ENTITY commonSetup SYSTEM "./../../../config/properties.xml">
<!ENTITY commonBuild SYSTEM "./../../../config/common.xml">
<!ENTITY commonRun SYSTEM "./../../../config/run.xml">
<!ENTITY reporting   SYSTEM "../report.xml">
]>

<project name="smoke-test" default="usage" basedir=".">

    &commonSetup;
    &commonBuild;
    &commonRun;
    &reporting;

    <property name="smoke-target" value="all"/>

    <taskdef resource="net/sf/antcontrib/antcontrib.properties">
        <classpath>
            <pathelement location="${env.APS_HOME}/devtests/cdi/lib/ant-contrib-1.0b3.jar"/>
        </classpath>
    </taskdef>

    <target name="run-test">
        <antcall target="smoke">
        <param name="smoke-target" value="run-test"/>
        </antcall>
    </target>

    <target name="all">
        <antcall target="smoke">
        <param name="smoke-target" value="all"/>
        </antcall>
    </target>

    <target name="clean">
        <antcall target="smoke">
        <param name="smoke-target" value="clean"/>
        </antcall>
    </target>

    <target name="build">
        <antcall target="smoke">
        <param name="smoke-target" value="build"/>
        </antcall>
    </target>

    <target name="setup">
        <antcall target="smoke">
        <param name="smoke-target" value="setup"/>
        </antcall>
    </target>

    <target name="deploy">
        <antcall target="smoke">
        <param name="smoke-target" value="deploy"/>
        </antcall>
    </target>

    <target name="undeploy">
        <antcall target="smoke">
        <param name="smoke-target" value="undeploy"/>
        </antcall>
    </target>

    <target name="unsetup">
        <antcall target="smoke">
        <param name="smoke-target" value="unsetup"/>
        </antcall>
    </target>

    <target name="run">
        <antcall target="smoke">
        <param name="smoke-target" value="run"/>
        </antcall>
    </target>

    <target name="smoke">
        <record name="smoke.output" action="start" />
            <if>
                <equals arg1="${test.embedded.mode}" arg2="true"/>
                <then>
                    <echo> Excluding testcase simple-wab-with-cdi and slf4j-visibility for embedded mode</echo>
                </then>
                <else>
                    <echo> Excluding testcase simple-wab-with-cdi </echo>
                    <!--
                    <ant dir="simple-wab-with-cdi" target="${smoke-target}"/>
                    -->
                    <ant dir="slf4j-visibility" target="${smoke-target}"/>
                </else>
            </if>
            <ant dir="simple-ejb-cdi" target="${smoke-target}"/>

        <!--
        Not running until
        https://issues.jboss.org/browse/WELD-1345 is fixed. (fixed in 2.0.0.Beta5)
        In 1.1.10.Final the test passes.
        In 2.0 Beta it fails.
        -->
<!--
        <ant dir="simple-mdb" target="${smoke-target}"/>
        <ant dir="simple-ejb-singleton/hello" target="${smoke-target}"/>
            <ant dir="singleton-startup/hello" target="${smoke-target}"/>
-->
            <ant dir="simple-managed-bean" target="${smoke-target}"/>
            <ant dir="simple-managed-bean-interceptor-nonnull-package" target="${smoke-target}"/>
            <ant dir="cdi-servlet-3.0-annotation" target="${smoke-target}"/>
            <ant dir="cdi-servlet-filter-3.0-annotation" target="${smoke-target}"/>
            <ant dir="simple-ear" target="${smoke-target}"/>
            <ant dir="optional-unbundled-beans" target="${smoke-target}"/>
        <record name="smoke.output" action="stop" />
    </target>

    <target name="usage">
        <echo> Usage:
                ant all (Executes all the smoke tests)
                ant clean (cleans all the smoke tests)
                ant build (builds all the smoke tests)
                ant setup (sets up all resources for smoke tests)
                ant deploy (deploys all the smoke apps)
                ant run (Executes all the smoke tests)
                ant undeploy (undeploys all the  smoke apps)
                ant unsetup (unsets all resources for smoke tests)
        </echo>
    </target>
</project>
