<?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.
        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>
