<?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" />

  <property name="module"
    value="TestModule" />

  <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="testModuleAndJar">
    <java module="${module}" jar="test.jar"  />
  </target>

  <target name="testJarAndModule">
    <java jar="test.jar" module="${module}"  />
  </target>

  <target name="testClassnameAndModule">
    <java classname="${app}" module="${module}" fork="true"/>
  </target>

  <target name="testModuleAndClassname">
    <java module="${module}" classname="${app}" fork="true"/>
  </target>

  <target name="testModule">
    <java module="${module}" fork="true"/>
  </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>
