<?xml version="1.0"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<project name="java-test" basedir="." default="foo">
  <fail unless="tests-classpath.value"
      message="the property tests-classpath.value is required by this test" />
  <!-- this property gets overridden programmatically-->
  <property name="timeToWait" value="4"/>
  <!-- this property gets overridden programmatically-->
  <property name="logFile" value="spawn.log"/>
  <property name="tmp" location="${java.io.tmpdir}/ant.tmp.java-test"/>
  <mkdir dir="${tmp}" description="The directory must exist"/>
  <property name="app"
    value="org.apache.tools.ant.taskdefs.JavaTest$$EntryPoint" />

  <property name="app2"
    value="org.apache.tools.ant.taskdefs.JavaTest$$ExceptingEntryPoint" />

  <property name="spawnapp"
    value="org.apache.tools.ant.taskdefs.JavaTest$$SpawnEntryPoint" />

  <property name="pipeapp"
    value="org.apache.tools.ant.taskdefs.JavaTest$$PipeEntryPoint" />

  <target name="testNoJarNoClassname">
    <java/>
  </target>

  <target name="testJarNoFork">
    <java jar="test.jar" fork="false"/>
  </target>


  <target name="testJarAndClassName">
    <java jar="test.jar" classname="${app}" />
  </target>

  <target name="testClassnameAndJar">
    <java classname="${app}" jar="test.jar"  />
  </target>

  <target name="testRun">
    <fail unless="tests-classpath.value" />
    <java classname="${app}"
      classpath="${tests-classpath.value}"/>
  </target>

  <target name="testRunFail">
    <java classname="${app}"
      classpath="${tests-classpath.value}"
      >
      <arg value="2"/>
    </java>
  </target>

  <target name="testRunFailFoe">
    <java classname="${app}"
      classpath="${tests-classpath.value}"
      failonerror="true">
      <arg value="2"/>
    </java>
  </target>

  <target name="testRunFailFoeFork">
    <java classname="${app}"
        classpath="${tests-classpath.value}"
        failonerror="true"
        fork="true">
        <arg value="2"/>
    </java>
  </target>

  <target name="testExcepting">
    <java classname="${app2}"
        classpath="${tests-classpath.value}"
        >
    </java>
  </target>

  <target name="testExceptingFork">
    <java classname="${app2}"
          classpath="${tests-classpath.value}"
          fork="true">
    </java>
  </target>

  <target name="testExceptingFoe">
    <java classname="${app2}"
        classpath="${tests-classpath.value}"
        failonerror="true">
    </java>
  </target>

  <target name="testExceptingFoeFork">
    <java classname="${app2}"
        classpath="${tests-classpath.value}"
        failonerror="true"
        fork="true">
    </java>
  </target>

  <target name="testResultPropertyZero">
    <java classname="${app}"
        classpath="${tests-classpath.value}"
        resultproperty="exitcode"
        fork="true"
        >
    </java>
    <echo message="exitcode = ${exitcode}"/>
  </target>

  <target name="testResultPropertyNonZero">
    <java classname="${app}"
        classpath="${tests-classpath.value}"
        resultproperty="exitcode"
        failonerror="false"
        fork="true"
        >
        <arg value="2"/>
    </java>
    <echo message="exitcode = ${exitcode}"/>
  </target>

   <target name="testResultPropertyZeroNoFork">
     <java classname="${app}"
         classpath="${tests-classpath.value}"
         resultproperty="exitcode"
         fork="false"
         >
         <permissions/>
     </java>
     <echo message="exitcode = ${exitcode}"/>
   </target>
 
    <target name="testResultPropertyNonZeroNoFork">
        <java classname="${app}"
              classpath="${tests-classpath.value}"
              resultproperty="exitcode"
              failonerror="false"
              fork="false">
            <arg value="-1"/>
            <permissions/>
        </java>
        <echo message="exitcode = ${exitcode}"/>
    </target>

    <target name="testRunFailWithFailOnError">
      <java classname="${app}"
        classpath="${tests-classpath.value}"
        failonerror="true"
        >
        <arg value="2"/>
      </java>
    </target>

    <target name="testRunSuccessWithFailOnError">
      <java classname="${app}"
        classpath="${tests-classpath.value}"
        failonerror="true"
        >
        <arg value="0"/>
      </java>
    </target>

    <target name="testSpawn">
        <java classname="${spawnapp}" fork="true" spawn="true" classpath="${tests-classpath.value}">
            <arg value="${timeToWait}"/>
            <arg value="${logFile}" />
        </java>
    </target>

    <!--redirection testcases don't want to run under junit unless forked-->
    <target name="redirect1">
        <property name="outfile" location="${tmp}/redirect.out" />

        <java classname="${pipeapp}"
              classpath="${tests-classpath.value}"
              inputstring="foo"
              fork="true"
              output="${outfile}"
              errorproperty="redirect.err">
            <arg value="out" />
        </java>

        <!-- let dumb Windows catch up -->
        <waitfor maxwait="30000">
            <available file="${outfile}" />
        </waitfor>
        <waitfor maxwait="30000">
            <length file="${outfile}" length="1" when="greater" />
        </waitfor>

        <loadfile property="redirect.out.contents" srcfile="${outfile}" />

        <condition property="r1file">
            <equals arg1="${redirect.out.contents}" arg2="foo" />
        </condition>

        <fail unless="r1file">${outfile}:
&quot;${redirect.out.contents}&quot; expected &quot;foo&quot;</fail>

        <condition property="r1prop">
            <equals arg1="${redirect.err}" arg2="" />
        </condition>

        <fail unless="r1prop">
redirect.err=&quot;${redirect.err}&quot; should be empty</fail>

    </target>

    <target name="redirect2" depends="redirect1">
        <property name="outfile" location="${tmp}/redirect.out" />

        <java classname="${pipeapp}"
              classpath="${tests-classpath.value}"
              inputstring="bar"
              append="true"
              fork="true"
              output="${outfile}"
              errorproperty="redirect.err">
            <arg value="both" />
        </java>

        <!-- let dumb Windows catch up -->
        <waitfor maxwait="30000">
            <available file="${outfile}" />
        </waitfor>
        <waitfor maxwait="30000">
            <length file="${outfile}" length="1" when="greater" />
        </waitfor>
        
        
        <loadfile property="redirect.out.contents2" srcfile="${outfile}" />

        <condition property="r2file">
            <equals arg1="${redirect.out.contents2}" arg2="foobar" />
        </condition>

        <fail unless="r2file">${outfile}:
&quot;${redirect.out.contents2}&quot; expected &quot;foobar&quot;</fail>

        <condition property="r2prop">
            <!-- property should not change -->
            <equals arg1="${redirect.err}" arg2="" />
        </condition>

        <fail unless="r2prop">
redirect.err=&quot;${redirect.err}&quot; should be empty</fail>

    </target>

    <target name="redirect3">
        <property name="outfile" location="${tmp}/redirect.out" />
        <property name="errfile" location="${tmp}/redirect.err" />

        <java classname="${pipeapp}"
              classpath="${tests-classpath.value}"
              inputstring="foo"
              fork="true"
              output="${outfile}"
              error="${errfile}">
            <arg value="both" />
        </java>

        <!-- let dumb Windows catch up -->
        <waitfor>
            <and>
                <available file="${outfile}" />
                <available file="${errfile}" />
            </and>
        </waitfor>

        <loadfile property="redirect.out.contents" srcfile="${outfile}" />

        <condition property="r3file">
            <equals arg1="${redirect.out.contents}" arg2="foo" />
        </condition>

        <fail unless="r3file">${outfile}:
&quot;${redirect.out.contents}&quot; expected &quot;foo&quot;</fail>

        <condition property="r3match">
            <filesmatch file1="${outfile}" file2="${errfile}" />
        </condition>

        <fail unless="r3file">${errfile} differs from ${outfile}</fail>

    </target>

    <target name="redirector1">
        <property name="outfile" location="${tmp}/redirector.out" />
        <property name="errfile" location="${tmp}/redirector.err" />

        <java taskname="foo" classname="${pipeapp}" fork="true"
              classpath="${tests-classpath.value}">
            <redirector inputstring="foo"
                        output="${outfile}"
                        error="${errfile}"
                        createemptyfiles="false" />
            <arg value="out" />
        </java>

        <!-- let dumb Windows catch up -->
        <waitfor>
            <available file="${outfile}" />
        </waitfor>

        <loadfile property="redirector.out.contents" srcfile="${outfile}" />

        <condition property="ror1out">
            <equals arg1="${redirector.out.contents}" arg2="foo" />
        </condition>

        <fail unless="ror1out">${outfile}:
&quot;${redirector.out.contents}&quot; expected &quot;foo&quot;</fail>

        <condition property="ror1noerr">
            <not>
                <available file="${errfile}" />
            </not>
        </condition>
        <fail unless="ror1noerr">${errfile} exists but should not</fail>
    </target>

    <target name="redirector2" depends="redirector1">
        <property name="outfile" location="${tmp}/redirector.out" />
        <property name="errfile" location="${tmp}/redirector.err" />

        <!-- fork here; some VMs can be ill-behaved with files,
            such as W!nd0ws -->
        <java taskname="foo" classname="${pipeapp}" fork="true"
              classpath="${tests-classpath.value}">
            <redirector inputstring="foo"
                        append="true"
                        output="${outfile}"
                        error="${errfile}"
                        createemptyfiles="false">
                <errorfilterchain>
                    <replacestring from="foo" to="bar" />
                </errorfilterchain>
            </redirector>
            <arg value="both" />
        </java>

        <!-- let dumb Windows catch up -->
        <waitfor>
            <and>
                <available file="${outfile}" />
                <available file="${errfile}" />
            </and>
        </waitfor>

        <loadfile property="redirector.out.contents2"
                  srcfile="${outfile}" />

        <loadfile property="redirector.err.contents"
                  srcfile="${errfile}" />

        <condition property="ror2out">
            <equals arg1="${redirector.out.contents2}" arg2="foofoo" />
        </condition>

        <fail unless="ror1out">${outfile}:
&quot;${redirector.out.contents}&quot; expected &quot;foofoo&quot;</fail>

        <condition property="ror2err">
            <equals arg1="${redirector.err.contents}" arg2="bar" />
        </condition>

        <fail unless="ror1out">${errfile}:
&quot;${redirector.err.contents}&quot; expected &quot;bar&quot;</fail>

    </target>

    <target name="cleanup">
        <delete>
            <fileset file="${logFile}" />
            <fileset dir="${tmp}" includes="redirect*" />
        </delete>
    </target>

    <target name="foo" />
</project>
