<!--

    Copyright (c) 2017, 2021 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

-->

<property name="stylesheet" value="${env.APS_HOME}/config/j2eeReporter.xsl" />
<property name="xmlfile" value="${env.APS_HOME}/test_resultsValid.xml" />
<property name="htmlfile" value="${env.APS_HOME}/test_results.html" />

<target name="report">
    <echo message="Comparing results with expected results" />


    <xslt style="${stylesheet}" in="${xmlfile}" out="${htmlfile}" basedir="." destdir="." />
    <antcall target="report-sh" />
</target>

<target name="report-sh">
    <antcall target="pecount" />
    <antcall target="eecount" />
</target>

<target name="pecount" unless="ee">
    <exec executable="sh">
        <arg value="config/resultCount.sh" />
    </exec>
</target>
<target name="eecount" if="ee">
    <exec executable="sh">
        <arg value="eeconfig/eeresultCount.sh" />
    </exec>
</target>

<target name="create-report">
    <echo message="Comparing results with expected results" />
    <xslt style="${stylesheet}" in="${xmlfile}" out="${htmlfile}" basedir="." destdir="." />
</target>

<target name="report-java">
    <antcall target="pecount-java" />
    <antcall target="eecount-java" />
</target>

<target name="compile-report">
    <antcall target="compile-common">
        <param name="src" value="${env.APS_HOME}/util/results" />
    </antcall>
</target>

<target name="pecount-java" depends="init-common,compile-report" unless="ee">
    <java classname="ResultsProducer" fork="true" failonerror="true" maxmemory="128M"
        classpath="${build.classes.dir}">
        <arg value="${env.APS_HOME}/test_resultsValid.xml" />
        <arg value="69" />
        <arg value="${env.APS_HOME}/count.txt" />
    </java>
</target>

<target name="eecount-java" depends="init-common,compile-report" if="ee">
    <java classname="ResultsProducer" fork="true" failonerror="true" maxmemory="128M"
        classpath="${build.classes.dir}">
        <arg value="${env.APS_HOME}/test_resultsValid.xml" />
        <arg value="69" />
        <arg value="${env.APS_HOME}/count.txt" />
    </java>
</target>
