notification: delay timeout for test in secured mode
authorPhilippe Coval <philippe.coval@osg.samsung.com>
Wed, 15 Feb 2017 10:24:58 +0000 (11:24 +0100)
committerPhil Coval <philippe.coval@osg.samsung.com>
Tue, 21 Feb 2017 08:58:55 +0000 (08:58 +0000)
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 <philippe.coval@osg.samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/17297
Tested-by: jenkins-iotivity <jenkins@iotivity.org>
Reviewed-by: Pawel Winogrodzki <pawelwi@microsoft.com>
Reviewed-by: Dan Mihai <Daniel.Mihai@microsoft.com>
service/notification/unittest/NSConsumerTest.cpp
service/notification/unittest/NSProviderTest.cpp

index ab21933..56ccfa2 100644 (file)
@@ -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;
index 929f0b6..74044c5 100755 (executable)
@@ -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);