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.

* add textfile attribute to the filesmatch condition.

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>
<td valign="top">file1</td>
<td valign="top">First file to test</td>
<td align="center">Yes.</td>
<td align="center">Yes</td>
</tr>
<tr>
<td valign="top">file2</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>
</table>



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

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

<target name="filesmatch-match" >
<echo file="match3.txt" message="012345676890" />
<echo file="match4.txt" message="012345676890" />
@@ -210,6 +209,32 @@
<echo>${filesmatch-match}</echo>
</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">
<echo file="match5.txt" message="012345676890" />
<echo file="match6.txt" message="0123456768" />
@@ -374,12 +399,9 @@
</target>
<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>
</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;

/**
* 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.
*
* @since Ant 1.5
@@ -40,6 +40,8 @@ public class FilesMatch implements Condition {
*/
private File file1, file2;

private boolean textfile = false;


/**
* Sets the File1 attribute
@@ -60,6 +62,14 @@ public class FilesMatch implements Condition {
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
*
@@ -78,7 +88,7 @@ public class FilesMatch implements Condition {
//#now match the files
boolean matches = false;
try {
matches = FILE_UTILS.contentEquals(file1, file2);
matches = FILE_UTILS.contentEquals(file1, file2, textfile);
} catch (IOException ioe) {
throw new BuildException("when comparing files: "
+ 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");
}

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

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

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


Loading…
Cancel
Save