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

fgerlits pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git

commit db828ba53062e816d0add32cc9a233baf669542a
Author: Adam Debreceni <[email protected]>
AuthorDate: Mon Apr 7 15:48:01 2025 +0200

    MINIFICPP-2557 Fix flaky test
    
    Signed-off-by: Ferenc Gerlits <[email protected]>
    Closes #1959
---
 libminifi/test/integration/C2AssetSyncTest.cpp | 51 ++++++++++++++++----------
 1 file changed, 31 insertions(+), 20 deletions(-)

diff --git a/libminifi/test/integration/C2AssetSyncTest.cpp 
b/libminifi/test/integration/C2AssetSyncTest.cpp
index 29658d5bd..a1ce6ad68 100644
--- a/libminifi/test/integration/C2AssetSyncTest.cpp
+++ b/libminifi/test/integration/C2AssetSyncTest.cpp
@@ -160,6 +160,11 @@ class VerifyC2AssetSync : public VerifyC2Base {
     configuration->set("nifi.c2.root.classes", 
"DeviceInfoNode,AgentInformation,FlowInformation,AssetInformation");
   }
 
+  void testSetup() override {
+    
LogTestController::getInstance().setTrace<minifi::utils::file::AssetManager>();
+    VerifyC2Base::testSetup();
+  }
+
   void runAssertions() override {
     verify_();
   }
@@ -233,17 +238,20 @@ TEST_CASE("C2AssetSync", "[c2test]") {
           {(asset_dir / "nested" / "C.txt").string(), file_C},
           {(asset_dir / ".state").string(), hb_handler.assetState()}
       };
-      auto actual_assets = get_asset_structure();
-      if (actual_assets != expected_assets) {
-        controller.getLogger()->log_error("Mismatch between expected and 
actual assets");
-        for (auto& [path, content] : expected_assets) {
-          controller.getLogger()->log_error("Expected asset at {}: {}", path, 
content);
-        }
-        for (auto& [path, content] : actual_assets) {
-          controller.getLogger()->log_error("Actual asset at {}: {}", path, 
content);
+      REQUIRE(utils::verifyEventHappenedInPollTime(10s, [&] {
+        auto actual_assets = get_asset_structure();
+        if (actual_assets != expected_assets) {
+          controller.getLogger()->log_error("Mismatch between expected and 
actual assets");
+          for (auto& [path, content] : expected_assets) {
+            controller.getLogger()->log_error("Expected asset at {}: {}", 
path, content);
+          }
+          for (auto& [path, content] : actual_assets) {
+            controller.getLogger()->log_error("Actual asset at {}: {}", path, 
content);
+          }
+          return false;
         }
-        REQUIRE(false);
-      }
+        return true;
+      }));
     }
 
     hb_handler.removeAsset("Av1");
@@ -260,17 +268,20 @@ TEST_CASE("C2AssetSync", "[c2test]") {
           {(asset_dir / ".state").string(), hb_handler.assetState()}
       };
 
-      auto actual_assets = get_asset_structure();
-      if (actual_assets != expected_assets) {
-        controller.getLogger()->log_error("Mismatch between expected and 
actual assets");
-        for (auto& [path, content] : expected_assets) {
-          controller.getLogger()->log_error("Expected asset at {}: {}", path, 
content);
-        }
-        for (auto& [path, content] : actual_assets) {
-          controller.getLogger()->log_error("Actual asset at {}: {}", path, 
content);
+      REQUIRE(utils::verifyEventHappenedInPollTime(10s, [&] {
+        auto actual_assets = get_asset_structure();
+        if (actual_assets != expected_assets) {
+          controller.getLogger()->log_error("Mismatch between expected and 
actual assets");
+          for (auto& [path, content] : expected_assets) {
+            controller.getLogger()->log_error("Expected asset at {}: {}", 
path, content);
+          }
+          for (auto& [path, content] : actual_assets) {
+            controller.getLogger()->log_error("Actual asset at {}: {}", path, 
content);
+          }
+          return false;
         }
-        REQUIRE(false);
-      }
+        return true;
+      }));
     }
   });
 

Reply via email to