IVGCVSW-4171 Fix intermittent failure on FileOnlyProfilingDecoratorTests
authorjaneil01 <jan.eilers@arm.com>
Tue, 3 Dec 2019 17:01:32 +0000 (17:01 +0000)
committerjaneil01 <jan.eilers@arm.com>
Tue, 3 Dec 2019 17:07:37 +0000 (17:07 +0000)
* Added destructor to prevent hanging after raising an error
* Enhanced timeouts to prevent test from failing

Signed-off-by: janeil01 <jan.eilers@arm.com>
Change-Id: Ibf137835040edc51348d70ff67d27ef3fffac15b

src/profiling/ProfilingService.cpp
src/profiling/ProfilingService.hpp
src/profiling/test/FileOnlyProfilingDecoratorTests.cpp

index c4063a5..ddd4d80 100644 (file)
@@ -90,6 +90,7 @@ void ProfilingService::Update()
     switch (currentState)
     {
     case ProfilingState::Uninitialised:
+
         // Initialize the profiling service
         Initialize();
 
@@ -368,6 +369,11 @@ inline void ProfilingService::CheckCounterUid(uint16_t counterUid) const
     }
 }
 
+ProfilingService::~ProfilingService()
+{
+    Stop();
+}
+
 } // namespace profiling
 
 } // namespace armnn
index f9b057c..dd75d05 100644 (file)
@@ -179,7 +179,7 @@ protected:
         // Register the "Per-Job Counter Selection" command handler
         m_CommandHandlerRegistry.RegisterFunctor(&m_PerJobCounterSelectionCommandHandler);
     }
-    ~ProfilingService() = default;
+    ~ProfilingService();
 
     // Protected methods for testing
     void SwapProfilingConnectionFactory(ProfilingService& instance,
index d4907b6..b30b38f 100644 (file)
@@ -45,8 +45,8 @@ BOOST_AUTO_TEST_CASE(DumpOutgoingValidFileEndToEnd)
     profilingService.Update();
     profilingService.Update();
 
-    uint32_t timeout   = 25; // Wait for a maximum of 25mSec
-    uint32_t sleepTime = 1;  // in 1mSec intervals.
+    uint32_t timeout = 1000; // Wait for a maximum of 1000mSec
+    uint32_t sleepTime = 2;  // in 2mSec intervals.
     uint32_t timeSlept = 0;
 
     // Give the profiling service sending thread time start executing and send the stream metadata.
@@ -92,7 +92,7 @@ BOOST_AUTO_TEST_CASE(DumpOutgoingValidFileEndToEnd)
     options.m_EnableProfiling = false;
     profilingService.ResetExternalProfilingOptions(options, true);
     // Wait a short time to allow the threads to clean themselves up.
-    std::this_thread::sleep_for(std::chrono::milliseconds(100));
+    std::this_thread::sleep_for(std::chrono::milliseconds(500));
 
     // The output file size should be greater than 0.
     struct stat statusBuffer;