<?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="failed-test"
    default="all"
         xmlns:au="antlib:org.apache.ant.antunit">

  <target name="all">
    <fail message="These are not standalone tests." />
  </target>

  <target name="setUp">
    <fail message="outputfile property is not set." unless="outputfile" />
    <echo file="${outputfile}" append="true" message="S" />
  </target>

  <target name="test1">
    <echo file="${outputfile}" append="true" message="E" />
    <fail message="Expected failure" />
  </target>

  <target name="tearDown">
    <echo file="${outputfile}" append="true" message="T" />
  </target>

</project>
