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; + })); } });
