From 22fac3916a07b81a046ef6ea9b31fe701f9142ec Mon Sep 17 00:00:00 2001 From: Philippe Coval Date: Wed, 15 Feb 2017 11:24:58 +0100 Subject: [PATCH] notification: delay timeout for test in secured mode timeout have been arbitrary doubled to prevent issues like: Segmentation fault (core dumped) scons: *** [out/linux/x86_64/debug/service/notification/unittest/utservice/notification/unittest/notification_consumer_test] Error 139 service/notification/unittest/NSProviderTest.cpp:238: Failure Expected: (nullptr) != (g_consumerID), actual: 8-byte object <00-00 00-00 00-00 00-00> vs NULL error: discovery failure If problem is still happening, it can be bigger, please raise bugs. Change-Id: Ief98f156a870d9a346fc6507e2a26bc063cbceae Signed-off-by: Philippe Coval Reviewed-on: https://gerrit.iotivity.org/gerrit/17297 Tested-by: jenkins-iotivity Reviewed-by: Pawel Winogrodzki Reviewed-by: Dan Mihai --- service/notification/unittest/NSConsumerTest.cpp | 8 +++++++- service/notification/unittest/NSProviderTest.cpp | 16 ++++++++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/service/notification/unittest/NSConsumerTest.cpp b/service/notification/unittest/NSConsumerTest.cpp index ab21933..56ccfa2 100644 --- a/service/notification/unittest/NSConsumerTest.cpp +++ b/service/notification/unittest/NSConsumerTest.cpp @@ -42,7 +42,13 @@ namespace std::atomic_bool g_isStartedStack(false); - std::chrono::milliseconds g_waitForResponse(1000); + /// Reasonable timeout is set to 1000 ms in unsecured mode. + unsigned int g_timeout = 1000; +#ifndef SECURED + g_timeout = 2 * g_timeout +#endif + std::chrono::milliseconds g_waitForResponse(g_timeout); + std::condition_variable messageReceive; std::mutex messageReceiveLock; diff --git a/service/notification/unittest/NSProviderTest.cpp b/service/notification/unittest/NSProviderTest.cpp index 929f0b6..74044c5 100755 --- a/service/notification/unittest/NSProviderTest.cpp +++ b/service/notification/unittest/NSProviderTest.cpp @@ -34,7 +34,12 @@ namespace { std::atomic_bool g_isStartedStack(false); - std::chrono::milliseconds g_waitForResponse(1000); + /// Reasonable timeout is set to 1000 ms in unsecured mode + unsigned int g_timeout = 1000; +#ifdef SECURED + g_timeout = 2 * g_timeout +#endif + std::chrono::milliseconds g_waitForResponse(g_timeout); std::condition_variable responseProviderSub; std::mutex responseProviderSubLock; @@ -230,8 +235,11 @@ TEST_F(NotificationProviderTest, ExpectCallbackWhenReceiveSubscribeRequestWithAc // maximum waiting time for subscription is 1.5 sec. // usually maximum time is 1 sec. (g_waitForResponse = 1 sec.) - // but, in the secured case is need to more wait for processing. - std::chrono::milliseconds waitForSubscription(1500); + unsigned int timeout = g_timeout * 1.5; +#ifdef SECURED + timemout = 2 * timemout; +#endif + std::chrono::milliseconds waitForSubscription(timemout); std::unique_lock< std::mutex > lock{ responseProviderSubLock }; responseProviderSub.wait_for(lock, waitForSubscription); @@ -570,7 +578,7 @@ TEST_F(NotificationProviderTest, CancelObserves) { bool ret = g_consumerSimul.cancelObserves(); - std::chrono::milliseconds waitForTerminate(1000); + std::chrono::milliseconds waitForTerminate(g_timemout); std::this_thread::sleep_for(waitForTerminate); EXPECT_EQ(ret, true); -- 2.7.4