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

      https://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 basedir=".">

  <target name="setUp">
    <touch file="source"/>
    <touch file="target"/>
  </target>

  <target name="tearDown">
    <delete file="source"/>
    <delete file="target"/>
  </target>

  <target name="testFilesetUpToDate">
    <uptodate property="foo" targetfile="target">
      <srcfiles dir="." includes="source"/>
    </uptodate>
  </target>

  <target name="testFilesetOutOfDate">
    <uptodate property="foo" targetfile="source">
      <srcfiles dir="." includes="target"/>
    </uptodate>
  </target>

  <target name="testRCUpToDate">
    <uptodate property="foo" targetfile="target">
      <srcresources>
        <fileset dir="." includes="source"/>
      </srcresources>
    </uptodate>
  </target>

  <target name="testRCOutOfDate">
    <uptodate property="foo" targetfile="source">
      <srcresources>
        <fileset dir="." includes="target"/>
      </srcresources>
    </uptodate>
  </target>
</project>