You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2021/01/27 15:03:48 UTC
[commons-io] branch master updated: Try to workaround test failure
on Ubuntu by using the NIO API to get a file's last modified timestamp.
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-io.git
The following commit(s) were added to refs/heads/master by this push:
new 3725829 Try to workaround test failure on Ubuntu by using the NIO API to get a file's last modified timestamp.
3725829 is described below
commit 3725829e95bdde1226f41c15c166dffb51d407e5
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Wed Jan 27 10:03:43 2021 -0500
Try to workaround test failure on Ubuntu by using the NIO API to get a
file's last modified timestamp.
---
.../commons/io/filefilter/FileFilterTestCase.java | 213 +++++++++++----------
1 file changed, 109 insertions(+), 104 deletions(-)
diff --git a/src/test/java/org/apache/commons/io/filefilter/FileFilterTestCase.java b/src/test/java/org/apache/commons/io/filefilter/FileFilterTestCase.java
index 38d098a..dac3e8b 100644
--- a/src/test/java/org/apache/commons/io/filefilter/FileFilterTestCase.java
+++ b/src/test/java/org/apache/commons/io/filefilter/FileFilterTestCase.java
@@ -30,6 +30,7 @@ import java.io.File;
import java.io.FileFilter;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
+import java.io.IOException;
import java.io.OutputStream;
import java.nio.charset.StandardCharsets;
import java.nio.file.FileVisitResult;
@@ -102,6 +103,98 @@ public class FileFilterTestCase {
assertNotNull(filter.toString());
}
+ private void assertFooBarFileFiltering(IOFileFilter filter) {
+ assertFiltering(filter, new File("foo"), true);
+ assertFiltering(filter, new File("foo"), true);
+ assertFiltering(filter, new File("bar"), true);
+ assertFiltering(filter, new File("fred"), false);
+ assertFiltering(filter, new File("foo").toPath(), true);
+ assertFiltering(filter, new File("foo").toPath(), true);
+ assertFiltering(filter, new File("bar").toPath(), true);
+ assertFiltering(filter, new File("fred").toPath(), false);
+
+ filter = new NameFileFilter(new String[] {"foo", "bar"}, IOCase.SENSITIVE);
+ assertFiltering(filter, new File("foo"), true);
+ assertFiltering(filter, new File("bar"), true);
+ assertFiltering(filter, new File("FOO"), false);
+ assertFiltering(filter, new File("BAR"), false);
+ assertFiltering(filter, new File("foo").toPath(), true);
+ assertFiltering(filter, new File("bar").toPath(), true);
+ assertFiltering(filter, new File("FOO").toPath(), false);
+ assertFiltering(filter, new File("BAR").toPath(), false);
+
+ filter = new NameFileFilter(new String[] {"foo", "bar"}, IOCase.INSENSITIVE);
+ assertFiltering(filter, new File("foo"), true);
+ assertFiltering(filter, new File("bar"), true);
+ assertFiltering(filter, new File("FOO"), true);
+ assertFiltering(filter, new File("BAR"), true);
+ assertFiltering(filter, new File("foo").toPath(), true);
+ assertFiltering(filter, new File("bar").toPath(), true);
+ assertFiltering(filter, new File("FOO").toPath(), true);
+ assertFiltering(filter, new File("BAR").toPath(), true);
+
+ filter = new NameFileFilter(new String[] {"foo", "bar"}, IOCase.SYSTEM);
+ assertFiltering(filter, new File("foo"), true);
+ assertFiltering(filter, new File("bar"), true);
+ assertFiltering(filter, new File("FOO"), WINDOWS);
+ assertFiltering(filter, new File("BAR"), WINDOWS);
+ assertFiltering(filter, new File("foo").toPath(), true);
+ assertFiltering(filter, new File("bar").toPath(), true);
+ assertFiltering(filter, new File("FOO").toPath(), WINDOWS);
+ assertFiltering(filter, new File("BAR").toPath(), WINDOWS);
+
+ filter = new NameFileFilter(new String[] {"foo", "bar"}, null);
+ assertFiltering(filter, new File("foo"), true);
+ assertFiltering(filter, new File("bar"), true);
+ assertFiltering(filter, new File("FOO"), false);
+ assertFiltering(filter, new File("BAR"), false);
+ assertFiltering(filter, new File("foo").toPath(), true);
+ assertFiltering(filter, new File("bar").toPath(), true);
+ assertFiltering(filter, new File("FOO").toPath(), false);
+ assertFiltering(filter, new File("BAR").toPath(), false);
+
+ // repeat for a List
+ final java.util.ArrayList<String> list = new java.util.ArrayList<>();
+ list.add("foo");
+ list.add("bar");
+ filter = new NameFileFilter(list);
+ assertFiltering(filter, new File("foo"), true);
+ assertFiltering(filter, new File("bar"), true);
+ assertFiltering(filter, new File("fred"), false);
+ assertFiltering(filter, new File("foo").toPath(), true);
+ assertFiltering(filter, new File("bar").toPath(), true);
+ assertFiltering(filter, new File("fred").toPath(), false);
+
+ filter = new NameFileFilter("foo");
+ assertFiltering(filter, new File("foo"), true);
+ assertFiltering(filter, new File("FOO"), false); // case-sensitive
+ assertFiltering(filter, new File("barfoo"), false);
+ assertFiltering(filter, new File("foobar"), false);
+ assertFiltering(filter, new File("fred"), false);
+ assertFiltering(filter, new File("foo").toPath(), true);
+ assertFiltering(filter, new File("FOO").toPath(), false); // case-sensitive
+ assertFiltering(filter, new File("barfoo").toPath(), false);
+ assertFiltering(filter, new File("foobar").toPath(), false);
+ assertFiltering(filter, new File("fred").toPath(), false);
+
+ // FileFilterUtils.nameFileFilter(String, IOCase) tests
+ filter = FileFilterUtils.nameFileFilter("foo", IOCase.INSENSITIVE);
+ assertFiltering(filter, new File("foo"), true);
+ assertFiltering(filter, new File("FOO"), true); // case-insensitive
+ assertFiltering(filter, new File("barfoo"), false);
+ assertFiltering(filter, new File("foobar"), false);
+ assertFiltering(filter, new File("fred"), false);
+ assertFiltering(filter, new File("foo").toPath(), true);
+ assertFiltering(filter, new File("FOO").toPath(), true); // case-insensitive
+ assertFiltering(filter, new File("barfoo").toPath(), false);
+ assertFiltering(filter, new File("foobar").toPath(), false);
+ assertFiltering(filter, new File("fred").toPath(), false);
+ }
+
+ private boolean equalsLastModified(final File left, final File right) throws IOException {
+ return Files.getLastModifiedTime(left.toPath()).equals(Files.getLastModifiedTime(right.toPath()));
+ }
+
@Test
public void testAgeFilter() throws Exception {
final File oldFile = new File(temporaryFolder, "old.txt");
@@ -129,7 +222,7 @@ public class FileFilterTestCase {
try (final BufferedOutputStream output = new BufferedOutputStream(new FileOutputStream(reference))) {
TestUtils.generateTestData(output, 0);
}
- } while (oldFile.lastModified() == reference.lastModified());
+ } while (equalsLastModified(oldFile, reference));
final Date date = new Date();
final long now = date.getTime();
@@ -146,7 +239,7 @@ public class FileFilterTestCase {
try (final BufferedOutputStream output = new BufferedOutputStream(new FileOutputStream(newFile))) {
TestUtils.generateTestData(output, 0);
}
- } while (reference.lastModified() == newFile.lastModified());
+ } while (equalsLastModified(reference, newFile));
final IOFileFilter filter1 = FileFilterUtils.ageFileFilter(now);
final IOFileFilter filter2 = FileFilterUtils.ageFileFilter(now, true);
@@ -517,6 +610,12 @@ public class FileFilterTestCase {
}
@Test
+ public void testFileEqualsFilter() {
+ assertFooBarFileFiltering(
+ new FileEqualsFileFilter(new File("foo")).or(new FileEqualsFileFilter(new File("bar"))));
+ }
+
+ @Test
public void testFileFilterUtils_and() {
final IOFileFilter trueFilter = TrueFileFilter.INSTANCE;
final IOFileFilter falseFilter = FalseFileFilter.INSTANCE;
@@ -887,6 +986,8 @@ public class FileFilterTestCase {
assertFiltering(filter, dir, false);
}
+ // -----------------------------------------------------------------------
+
@Test
public void testMagicNumberFileFilterString() throws Exception {
final byte[] classFileMagicNumber = new byte[] {(byte) 0xCA, (byte) 0xFE, (byte) 0xBA, (byte) 0xBE};
@@ -953,8 +1054,6 @@ public class FileFilterTestCase {
assertFiltering(filter, dir, false);
}
- // -----------------------------------------------------------------------
-
@Test
public void testMagicNumberFileFilterValidation() {
try {
@@ -1163,106 +1262,6 @@ public class FileFilterTestCase {
}
@Test
- public void testFileEqualsFilter() {
- assertFooBarFileFiltering(
- new FileEqualsFileFilter(new File("foo")).or(new FileEqualsFileFilter(new File("bar"))));
- }
-
- @Test
- public void testPathEqualsFilter() {
- assertFooBarFileFiltering(
- new PathEqualsFileFilter(Paths.get("foo")).or(new PathEqualsFileFilter(Paths.get("bar"))));
- }
-
- private void assertFooBarFileFiltering(IOFileFilter filter) {
- assertFiltering(filter, new File("foo"), true);
- assertFiltering(filter, new File("foo"), true);
- assertFiltering(filter, new File("bar"), true);
- assertFiltering(filter, new File("fred"), false);
- assertFiltering(filter, new File("foo").toPath(), true);
- assertFiltering(filter, new File("foo").toPath(), true);
- assertFiltering(filter, new File("bar").toPath(), true);
- assertFiltering(filter, new File("fred").toPath(), false);
-
- filter = new NameFileFilter(new String[] {"foo", "bar"}, IOCase.SENSITIVE);
- assertFiltering(filter, new File("foo"), true);
- assertFiltering(filter, new File("bar"), true);
- assertFiltering(filter, new File("FOO"), false);
- assertFiltering(filter, new File("BAR"), false);
- assertFiltering(filter, new File("foo").toPath(), true);
- assertFiltering(filter, new File("bar").toPath(), true);
- assertFiltering(filter, new File("FOO").toPath(), false);
- assertFiltering(filter, new File("BAR").toPath(), false);
-
- filter = new NameFileFilter(new String[] {"foo", "bar"}, IOCase.INSENSITIVE);
- assertFiltering(filter, new File("foo"), true);
- assertFiltering(filter, new File("bar"), true);
- assertFiltering(filter, new File("FOO"), true);
- assertFiltering(filter, new File("BAR"), true);
- assertFiltering(filter, new File("foo").toPath(), true);
- assertFiltering(filter, new File("bar").toPath(), true);
- assertFiltering(filter, new File("FOO").toPath(), true);
- assertFiltering(filter, new File("BAR").toPath(), true);
-
- filter = new NameFileFilter(new String[] {"foo", "bar"}, IOCase.SYSTEM);
- assertFiltering(filter, new File("foo"), true);
- assertFiltering(filter, new File("bar"), true);
- assertFiltering(filter, new File("FOO"), WINDOWS);
- assertFiltering(filter, new File("BAR"), WINDOWS);
- assertFiltering(filter, new File("foo").toPath(), true);
- assertFiltering(filter, new File("bar").toPath(), true);
- assertFiltering(filter, new File("FOO").toPath(), WINDOWS);
- assertFiltering(filter, new File("BAR").toPath(), WINDOWS);
-
- filter = new NameFileFilter(new String[] {"foo", "bar"}, null);
- assertFiltering(filter, new File("foo"), true);
- assertFiltering(filter, new File("bar"), true);
- assertFiltering(filter, new File("FOO"), false);
- assertFiltering(filter, new File("BAR"), false);
- assertFiltering(filter, new File("foo").toPath(), true);
- assertFiltering(filter, new File("bar").toPath(), true);
- assertFiltering(filter, new File("FOO").toPath(), false);
- assertFiltering(filter, new File("BAR").toPath(), false);
-
- // repeat for a List
- final java.util.ArrayList<String> list = new java.util.ArrayList<>();
- list.add("foo");
- list.add("bar");
- filter = new NameFileFilter(list);
- assertFiltering(filter, new File("foo"), true);
- assertFiltering(filter, new File("bar"), true);
- assertFiltering(filter, new File("fred"), false);
- assertFiltering(filter, new File("foo").toPath(), true);
- assertFiltering(filter, new File("bar").toPath(), true);
- assertFiltering(filter, new File("fred").toPath(), false);
-
- filter = new NameFileFilter("foo");
- assertFiltering(filter, new File("foo"), true);
- assertFiltering(filter, new File("FOO"), false); // case-sensitive
- assertFiltering(filter, new File("barfoo"), false);
- assertFiltering(filter, new File("foobar"), false);
- assertFiltering(filter, new File("fred"), false);
- assertFiltering(filter, new File("foo").toPath(), true);
- assertFiltering(filter, new File("FOO").toPath(), false); // case-sensitive
- assertFiltering(filter, new File("barfoo").toPath(), false);
- assertFiltering(filter, new File("foobar").toPath(), false);
- assertFiltering(filter, new File("fred").toPath(), false);
-
- // FileFilterUtils.nameFileFilter(String, IOCase) tests
- filter = FileFilterUtils.nameFileFilter("foo", IOCase.INSENSITIVE);
- assertFiltering(filter, new File("foo"), true);
- assertFiltering(filter, new File("FOO"), true); // case-insensitive
- assertFiltering(filter, new File("barfoo"), false);
- assertFiltering(filter, new File("foobar"), false);
- assertFiltering(filter, new File("fred"), false);
- assertFiltering(filter, new File("foo").toPath(), true);
- assertFiltering(filter, new File("FOO").toPath(), true); // case-insensitive
- assertFiltering(filter, new File("barfoo").toPath(), false);
- assertFiltering(filter, new File("foobar").toPath(), false);
- assertFiltering(filter, new File("fred").toPath(), false);
- }
-
- @Test
public void testNameFilterNullArgument() {
final String test = null;
try {
@@ -1361,6 +1360,12 @@ public class FileFilterTestCase {
}
@Test
+ public void testPathEqualsFilter() {
+ assertFooBarFileFiltering(
+ new PathEqualsFileFilter(Paths.get("foo")).or(new PathEqualsFileFilter(Paths.get("bar"))));
+ }
+
+ @Test
public void testPrefix() {
IOFileFilter filter = new PrefixFileFilter(new String[] {"foo", "bar"});
final File testFile = new File("test");