<?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 default="antunit" xmlns:au="antlib:org.apache.ant.antunit">
  <import file="../../antunit-base.xml" />

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

  <target name="testMatchWithSmallerFile2"
          description="https://issues.apache.org/bugzilla/show_bug.cgi?id=48715"
          depends="setUp">
    <property name="file1" location="${input}/LS.properties"/>
    <property name="file2" location="${input}/LS.properties.old"/>
    <echo file="${file1}"><![CDATA[foo=foo
bar=bar

]]></echo>
    <echo file="${file2}"><![CDATA[foo=foo
]]></echo>
    <au:assertFalse>
      <filesmatch file1="${file1}" file2="${file2}" textfile="true"/>
    </au:assertFalse>
  </target>

  <target name="testBinaryMatchWithSmallerFile2"
          description="https://issues.apache.org/bugzilla/show_bug.cgi?id=48715"
          depends="setUp">
    <property name="file1" location="${input}/LS.properties"/>
    <property name="file2" location="${input}/LS.properties.old"/>
    <echo file="${file1}"><![CDATA[foo=foo
bar=bar

]]></echo>
    <echo file="${file2}"><![CDATA[foo=foo
]]></echo>
    <au:assertFalse>
      <filesmatch file1="${file1}" file2="${file2}" textfile="false"/>
    </au:assertFalse>
  </target>

</project>
