This is an automated email from the ASF dual-hosted git repository.

jgresock pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/main by this push:
     new 1d1cf92b16 NIFI-13686 Make TestListFile.testFilterAge more resilient 
to work with time delays during execution
1d1cf92b16 is described below

commit 1d1cf92b167b70814e2bbb3b4bb860d04f00c9ae
Author: Jim Steinebrey <[email protected]>
AuthorDate: Tue Aug 27 18:37:25 2024 -0400

    NIFI-13686 Make TestListFile.testFilterAge more resilient to work with time 
delays during execution
    
    Signed-off-by: Joe Gresock <[email protected]>
    This closes #9204.
---
 .../nifi/processors/standard/TestListFile.java     | 64 +++++++++++-----------
 1 file changed, 31 insertions(+), 33 deletions(-)

diff --git 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestListFile.java
 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestListFile.java
index ff473160ca..b874e9a041 100644
--- 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestListFile.java
+++ 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestListFile.java
@@ -81,8 +81,7 @@ public class TestListFile {
     // age#filter are filter label strings for the filter properties
     private Long syncTime = getTestModifiedTime();
     private Long time0millis, time1millis, time2millis, time3millis, 
time4millis, time5millis;
-    private Long age0millis, age1millis, age2millis, age3millis, age4millis, 
age5millis;
-    private String age0, age1, age2, age3, age4, age5;
+    private String age0, age2, age4, age5;
 
     @RegisterExtension
     private final ListProcessorTestWatcher dumpState = new 
ListProcessorTestWatcher(
@@ -259,27 +258,26 @@ public class TestListFile {
 
     @Test
     public void testFilterAge() throws Exception {
-
-        final File file1 = new File(TESTDIR + "/age1.txt");
-        assertTrue(file1.createNewFile());
+        final File file0 = new File(TESTDIR + "/age0.txt");
+        assertTrue(file0.createNewFile());
 
         final File file2 = new File(TESTDIR + "/age2.txt");
         assertTrue(file2.createNewFile());
 
-        final File file3 = new File(TESTDIR + "/age3.txt");
-        assertTrue(file3.createNewFile());
+        final File file4 = new File(TESTDIR + "/age4.txt");
+        assertTrue(file4.createNewFile());
 
         final Function<Boolean, Object> runNext = resetAges -> {
             if (resetAges) {
                 resetAges();
-                assertTrue(file1.setLastModified(time0millis));
+                assertTrue(file0.setLastModified(time0millis));
                 assertTrue(file2.setLastModified(time2millis));
-                assertTrue(file3.setLastModified(time4millis));
+                assertTrue(file4.setLastModified(time4millis));
             }
 
-            assertTrue(file1.lastModified() > time3millis && 
file1.lastModified() <= time0millis);
+            assertTrue(file0.lastModified() > time3millis && 
file0.lastModified() <= time0millis);
             assertTrue(file2.lastModified() > time3millis && 
file2.lastModified() < time1millis);
-            assertTrue(file3.lastModified() < time3millis);
+            assertTrue(file4.lastModified() < time3millis);
 
             try {
                 runNext();
@@ -293,6 +291,11 @@ public class TestListFile {
         runner.setProperty(ListFile.DIRECTORY, testDir.getAbsolutePath());
         runNext.apply(true);
         runner.assertTransferCount(ListFile.REL_SUCCESS, 3);
+        final List<MockFlowFile> successFiles1 = 
runner.getFlowFilesForRelationship(ListFile.REL_SUCCESS);
+        assertEquals(3, successFiles1.size());
+        assertEquals(file4.getName(), 
successFiles1.get(0).getAttribute("filename"));
+        assertEquals(file2.getName(), 
successFiles1.get(1).getAttribute("filename"));
+        assertEquals(file0.getName(), 
successFiles1.get(2).getAttribute("filename"));
         assertVerificationOutcome(Outcome.SUCCESSFUL, "Successfully listed .* 
Found 3 objects.  Of those, 3 match the filter.");
 
         // processor updates internal state, it shouldn't pick the same ones.
@@ -301,28 +304,33 @@ public class TestListFile {
 
         // exclude oldest
         runner.setProperty(ListFile.MIN_AGE, age0);
-        runner.setProperty(ListFile.MAX_AGE, age3);
+        runner.setProperty(ListFile.MAX_AGE, age4);
         runNext.apply(true);
         runner.assertAllFlowFilesTransferred(ListFile.REL_SUCCESS);
         final List<MockFlowFile> successFiles2 = 
runner.getFlowFilesForRelationship(ListFile.REL_SUCCESS);
         assertEquals(2, successFiles2.size());
+        assertEquals(file2.getName(), 
successFiles2.get(0).getAttribute("filename"));
+        assertEquals(file0.getName(), 
successFiles2.get(1).getAttribute("filename"));
         assertVerificationOutcome(Outcome.SUCCESSFUL, "Successfully listed .* 
Found 3 objects.  Of those, 2 match the filter.");
 
         // exclude newest
-        runner.setProperty(ListFile.MIN_AGE, age1);
+        runner.setProperty(ListFile.MIN_AGE, age2);
         runner.setProperty(ListFile.MAX_AGE, age5);
         runNext.apply(true);
         runner.assertAllFlowFilesTransferred(ListFile.REL_SUCCESS);
+        final List<MockFlowFile> successFiles3 = 
runner.getFlowFilesForRelationship(ListFile.REL_SUCCESS);
+        assertEquals(2, successFiles3.size());
+        assertEquals(file4.getName(), 
successFiles3.get(0).getAttribute("filename"));
+        assertEquals(file2.getName(), 
successFiles3.get(1).getAttribute("filename"));
 
         // exclude oldest and newest
-        runner.setProperty(ListFile.MIN_AGE, age1);
-        runner.setProperty(ListFile.MAX_AGE, age3);
+        runner.setProperty(ListFile.MIN_AGE, age2);
+        runner.setProperty(ListFile.MAX_AGE, age4);
         runNext.apply(true);
         runner.assertAllFlowFilesTransferred(ListFile.REL_SUCCESS);
         final List<MockFlowFile> successFiles4 = 
runner.getFlowFilesForRelationship(ListFile.REL_SUCCESS);
         assertEquals(1, successFiles4.size());
-        assertVerificationOutcome(Outcome.SUCCESSFUL, "Successfully listed .* 
Found 3 objects.  Of those, 1 matches the filter.");
-
+        assertEquals(file2.getName(), 
successFiles4.get(0).getAttribute("filename"));
     }
 
     @Test
@@ -876,20 +884,12 @@ public class TestListFile {
     private void resetAges() {
         syncTime = getTestModifiedTime();
 
-        age0millis = 0L;
-        age1millis = 5000L;
-        age2millis = 10000L;
-        age3millis = 15000L;
-        age4millis = 20000L;
-        age5millis = 100000L;
-
-        // Allow for bigger gaps since the lag is 2s w/o milliseconds.
-        if (!isMillisecondSupported) {
-            age1millis *= 2;
-            age2millis *= 2;
-            age3millis *= 2;
-            age4millis *= 2;
-        }
+        final long age0millis = 0L;
+        final long age1millis = 20000L;
+        final long age2millis = 40000L;
+        final long age3millis = 60000L;
+        final long age4millis = 80000L;
+        final long age5millis = 200000L;
 
         time0millis = syncTime - age0millis;
         time1millis = syncTime - age1millis;
@@ -899,9 +899,7 @@ public class TestListFile {
         time5millis = syncTime - age5millis;
 
         age0 = Long.toString(age0millis) + " millis";
-        age1 = Long.toString(age1millis) + " millis";
         age2 = Long.toString(age2millis) + " millis";
-        age3 = Long.toString(age3millis) + " millis";
         age4 = Long.toString(age4millis) + " millis";
         age5 = Long.toString(age5millis) + " millis";
     }

Reply via email to