From af2ede880d75dd5b982acd338be3e5a3d9d9a3f3 Mon Sep 17 00:00:00 2001 From: Philip Rauwolf Date: Wed, 20 Mar 2013 17:16:47 +0100 Subject: Further improvement of timing in test cases --- src/test/DBusProxyTest.cpp | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/test/DBusProxyTest.cpp b/src/test/DBusProxyTest.cpp index 7f8a696..95c50b7 100644 --- a/src/test/DBusProxyTest.cpp +++ b/src/test/DBusProxyTest.cpp @@ -13,12 +13,13 @@ #include #include #include -#include #include #include #include +#include "DBusTestUtils.h" + #include #include @@ -59,8 +60,6 @@ protected: stubDBusConnection_ = CommonAPI::DBus::DBusConnection::getSessionBus(); ASSERT_TRUE(stubDBusConnection_->connect()); - ASSERT_TRUE(stubDBusConnection_->requestServiceNameAndBlock(busName)); - auto stubDefault = std::make_shared(); stubAdapter_ = std::make_shared( commonApiAddress, @@ -70,6 +69,15 @@ protected: stubDBusConnection_, stubDefault); stubAdapter_->init(); + + bool serviceNameAcquired = stubDBusConnection_->requestServiceNameAndBlock(busName); + + for(unsigned int i = 0; !serviceNameAcquired && i < 100; i++) { + usleep(10000); + serviceNameAcquired = stubDBusConnection_->requestServiceNameAndBlock(busName); + } + ASSERT_TRUE(serviceNameAcquired); + usleep(500000); } void deregisterTestStub() { @@ -88,6 +96,7 @@ protected: proxyStatusSubscription_ = proxy_->getProxyStatusEvent().subscribe([&](const CommonAPI::AvailabilityStatus& availabilityStatus) { proxyAvailabilityStatus_ = availabilityStatus; }); + usleep(100000); } void proxyDeregisterForAvailabilityStatus() { @@ -95,15 +104,11 @@ protected: } bool proxyWaitForAvailabilityStatus(const CommonAPI::AvailabilityStatus& availabilityStatus) const { - if (proxyAvailabilityStatus_ == availabilityStatus) - return true; - - std::chrono::milliseconds loopWaitDuration(10); - for (int i = 0; i < 100; i++) { - std::this_thread::sleep_for(loopWaitDuration); - + for (int i = 0; i < 10; i++) { + std::cout << "Current status is: " << toString(proxyAvailabilityStatus_) << std::endl; if (proxyAvailabilityStatus_ == availabilityStatus) return true; + usleep(100000); } return false; @@ -156,8 +161,6 @@ TEST_F(ProxyTest, DBusProxyStatusEventBeforeServiceIsRegistered) { registerTestStub(); - usleep(500000); - EXPECT_TRUE(proxyWaitForAvailabilityStatus(CommonAPI::AvailabilityStatus::AVAILABLE)); stubDBusConnection_->disconnect(); @@ -192,6 +195,7 @@ TEST_F(ProxyTest, ServiceStatus) { std::vector availableDBusServices; + //Service actually IS available! for (int i = 0; i < 5; i++) { availableDBusServices = proxyDBusConnection_->getDBusServiceRegistry()->getAvailableServiceInstances( commonApiServiceName, -- cgit v1.2.1