<?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">
  <property name="tests-classpath.value" value="${java.class.path}"/>
  <fail unless="tests-classpath.value"
      message="the property tests-classpath.value is required by this test" />
  <import file="../buildfiletest-base.xml"/>

  <target name="setUp">
    <mkdir dir="${output}" />
  </target>

  <!-- this property gets overridden programmatically-->
  <property name="timeToWait" value="4"/>
  <!-- this property gets overridden programmatically-->
  <property name="logFile" value="${output}/spawn.log"/>
  <property name="tmp" location="${output}/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">
        <tempfile property="outfile" destdir="${tmp}" prefix="redirect" suffix=".out" deleteonexit="true"/>

        <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">
        <tempfile property="outfile" destdir="${tmp}" prefix="redirect" suffix=".out" deleteonexit="true"/>

        <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">
        <tempfile property="outfile" destdir="${tmp}" prefix="redirect" suffix=".out" deleteonexit="true"/>
        <tempfile property="errfile" destdir="${tmp}" prefix="redirect" suffix=".err" deleteonexit="true"/>

        <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">
        <tempfile property="outfile" destdir="${tmp}" prefix="redirect" suffix=".out" deleteonexit="true"/>
        <tempfile property="errfile" destdir="${tmp}" prefix="redirect" suffix=".err" deleteonexit="true"/>

        <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">
        <tempfile property="outfile" destdir="${tmp}" prefix="redirect" suffix=".out" deleteonexit="true"/>
        <tempfile property="errfile" destdir="${tmp}" prefix="redirect" suffix=".err" deleteonexit="true"/>

        <!-- 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="flushedInput">
        <java classname="org.apache.tools.ant.taskdefs.JavaTest$$ReadPoint" fork="true"
            classpath="${tests-classpath.value}" failonerror="true" timeout="2000" />
    </target>

    <target name="foo" />

</project>
