Browse Source

add textfile attribute to filesmatch condition.

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@358828 13f79535-47bb-0310-9956-ffa450edef68
master
Matthew Jason Benson 19 years ago
parent
commit
bc6cf071ab
5 changed files with 61 additions and 12 deletions
  1. +2
    -0
      WHATSNEW
  2. +9
    -2
      docs/manual/CoreTasks/conditions.html
  3. +30
    -8
      src/etc/testcases/taskdefs/condition.xml
  4. +12
    -2
      src/main/org/apache/tools/ant/taskdefs/condition/FilesMatch.java
  5. +8
    -0
      src/testcases/org/apache/tools/ant/taskdefs/ConditionTest.java

+ 2
- 0
WHATSNEW View File

@@ -333,6 +333,8 @@ Other changes:


* new GreedyInputHandler added. * new GreedyInputHandler added.


* add textfile attribute to the filesmatch condition.

Changes from Ant 1.6.4 to Ant 1.6.5 Changes from Ant 1.6.4 to Ant 1.6.5
=================================== ===================================




+ 9
- 2
docs/manual/CoreTasks/conditions.html View File

@@ -236,12 +236,19 @@ or the filenames match the answer is so obvious the detailed test is omitted.
<tr> <tr>
<td valign="top">file1</td> <td valign="top">file1</td>
<td valign="top">First file to test</td> <td valign="top">First file to test</td>
<td align="center">Yes.</td>
<td align="center">Yes</td>
</tr> </tr>
<tr> <tr>
<td valign="top">file2</td> <td valign="top">file2</td>
<td valign="top">Second file to test</td> <td valign="top">Second file to test</td>
<td align="center">Yes.</td>
<td align="center">Yes</td>
</tr>
<tr>
<td valign="top">textfile</td>
<td valign="top">Whether to ignore line endings when comparing files;
default <i>false</i>
</td>
<td align="center">No</td>
</tr> </tr>
</table> </table>




+ 30
- 8
src/etc/testcases/taskdefs/condition.xml View File

@@ -196,9 +196,8 @@
file2="match2.txt" /> file2="match2.txt" />
</condition> </condition>
<echo>${filesmatch-different}</echo> <echo>${filesmatch-different}</echo>
</target>
</target>


<target name="filesmatch-match" > <target name="filesmatch-match" >
<echo file="match3.txt" message="012345676890" /> <echo file="match3.txt" message="012345676890" />
<echo file="match4.txt" message="012345676890" /> <echo file="match4.txt" message="012345676890" />
@@ -210,6 +209,32 @@
<echo>${filesmatch-match}</echo> <echo>${filesmatch-match}</echo>
</target> </target>


<target name="filesmatch-different-eol" >
<echo file="match7.txt" message="012345676890" />
<echo file="match8.txt" message="012345676890" />
<fixcrlf file="match7.txt" eol="cr" fixlast="true" />
<fixcrlf file="match8.txt" eol="lf" fixlast="true" />
<fail>
<condition>
<filesmatch file1="match7.txt" file2="match8.txt" />
</condition>
</fail>
</target>

<target name="filesmatch-same-eol" >
<echo file="match9.txt" message="012345676890" />
<echo file="match10.txt" message="012345676890" />
<fixcrlf file="match9.txt" eol="cr" fixlast="true" />
<fixcrlf file="match10.txt" eol="lf" fixlast="true" />
<fail>
<condition>
<not>
<filesmatch file1="match9.txt" file2="match10.txt" textfile="true" />
</not>
</condition>
</fail>
</target>

<target name="filesmatch-different-sizes"> <target name="filesmatch-different-sizes">
<echo file="match5.txt" message="012345676890" /> <echo file="match5.txt" message="012345676890" />
<echo file="match6.txt" message="0123456768" /> <echo file="match6.txt" message="0123456768" />
@@ -374,12 +399,9 @@
</target> </target>
<target name="cleanup" > <target name="cleanup" >
<delete file="match1.txt" />
<delete file="match2.txt" />
<delete file="match3.txt" />
<delete file="match4.txt" />
<delete file="match5.txt" />
<delete file="match6.txt" />
<delete>
<fileset dir="." includes="match?.txt,match??.txt" />
</delete>
</target> </target>
</project> </project>

+ 12
- 2
src/main/org/apache/tools/ant/taskdefs/condition/FilesMatch.java View File

@@ -22,7 +22,7 @@ import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.util.FileUtils; import org.apache.tools.ant.util.FileUtils;


/** /**
* Compares two files for bitwise equality based on size and
* Compares two files for equality based on size and
* content. Timestamps are not at all looked at. * content. Timestamps are not at all looked at.
* *
* @since Ant 1.5 * @since Ant 1.5
@@ -40,6 +40,8 @@ public class FilesMatch implements Condition {
*/ */
private File file1, file2; private File file1, file2;


private boolean textfile = false;



/** /**
* Sets the File1 attribute * Sets the File1 attribute
@@ -60,6 +62,14 @@ public class FilesMatch implements Condition {
this.file2 = file2; this.file2 = file2;
} }


/**
* Set whether to ignore line endings when comparing files.
* @param textfile whether to ignore line endings.
*/
public void setTextfile(boolean textfile) {
this.textfile = textfile;
}

/** /**
* comparison method of the interface * comparison method of the interface
* *
@@ -78,7 +88,7 @@ public class FilesMatch implements Condition {
//#now match the files //#now match the files
boolean matches = false; boolean matches = false;
try { try {
matches = FILE_UTILS.contentEquals(file1, file2);
matches = FILE_UTILS.contentEquals(file1, file2, textfile);
} catch (IOException ioe) { } catch (IOException ioe) {
throw new BuildException("when comparing files: " throw new BuildException("when comparing files: "
+ ioe.getMessage(), ioe); + ioe.getMessage(), ioe);


+ 8
- 0
src/testcases/org/apache/tools/ant/taskdefs/ConditionTest.java View File

@@ -162,6 +162,14 @@ public class ConditionTest extends BuildFileTest {
"filesmatch-different-onemissing"); "filesmatch-different-onemissing");
} }


public void testFilesmatchDifferentEol() {
executeTarget("filesmatch-different-eol");
}

public void testFilesmatchSameEol() {
executeTarget("filesmatch-same-eol");
}

public void testContains() { public void testContains() {
expectPropertySet("contains","contains"); expectPropertySet("contains","contains");
} }


Loading…
Cancel
Save