Improved timing and responsiveness of several tests.
authorPhilip Rauwolf <rauwolf@itestra.de>
Tue, 19 Mar 2013 09:46:20 +0000 (10:46 +0100)
committerPhilip Rauwolf <rauwolf@itestra.de>
Tue, 19 Mar 2013 09:46:20 +0000 (10:46 +0100)
src/test/DBusAddressTranslatorTest.cpp
src/test/DBusCommunicationTest.cpp
src/test/DBusDaemonProxyTest.cpp
src/test/DBusFactoryTest.cpp
src/test/DBusMultipleConnectionTest.cpp
src/test/DBusProxyTest.cpp
src/test/DBusServiceRegistryTest.cpp

index c9dcca7..3382934 100644 (file)
@@ -120,6 +120,7 @@ protected:
     }
 
     virtual void TearDown() {
+        usleep(30000);
     }
 };
 
@@ -158,28 +159,32 @@ TEST_F(AddressTranslatorTest, ParsesCommonAPIAddresses) {
 
 
 TEST_F(AddressTranslatorTest, ServicesUsingPredefinedAddressesCanCommunicate) {
-    std::shared_ptr<CommonAPI::Runtime> runtime;
-    std::shared_ptr<CommonAPI::Factory> proxyFactory;
-    std::shared_ptr<CommonAPI::Factory> stubFactory;
-
-    runtime = CommonAPI::Runtime::load();
+    std::shared_ptr<CommonAPI::Runtime> runtime = CommonAPI::Runtime::load();
     ASSERT_TRUE((bool)runtime);
     CommonAPI::DBus::DBusRuntime* dbusRuntime = dynamic_cast<CommonAPI::DBus::DBusRuntime*>(&(*runtime));
     ASSERT_TRUE(dbusRuntime != NULL);
 
-    proxyFactory = runtime->createFactory();
+    std::shared_ptr<CommonAPI::Factory> proxyFactory = runtime->createFactory();
     ASSERT_TRUE((bool)proxyFactory);
-    stubFactory = runtime->createFactory();
+    std::shared_ptr<CommonAPI::Factory> stubFactory = runtime->createFactory();
     ASSERT_TRUE((bool)stubFactory);
 
     auto defaultTestProxy = proxyFactory->buildProxy<commonapi::tests::TestInterfaceProxy>(commonApiAddresses[0]);
     ASSERT_TRUE((bool)defaultTestProxy);
 
     auto stub = std::make_shared<commonapi::tests::TestInterfaceStubDefault>();
-    bool success = stubFactory->registerService(stub, commonApiAddresses[0]);
-    ASSERT_TRUE(success);
 
-    sleep(1);
+    bool serviceNameAcquired = stubFactory->registerService(stub, commonApiAddresses[0]);
+    for(unsigned int i = 0; !serviceNameAcquired && i < 100; i++) {
+        serviceNameAcquired = stubFactory->registerService(stub, commonApiAddresses[0]);
+        usleep(10000);
+    }
+    ASSERT_TRUE(serviceNameAcquired);
+
+    for(unsigned int i = 0; !defaultTestProxy->isAvailable() && i < 100; ++i) {
+        usleep(10000);
+    }
+    ASSERT_TRUE(defaultTestProxy->isAvailable());
 
     uint32_t v1 = 5;
     std::string v2 = "Hai :)";
@@ -223,7 +228,7 @@ void fakeLegacyServiceThread() {
 
 TEST_F(AddressTranslatorTest, FakeLegacyServiceCanBeAddressed) {
     std::thread fakeServiceThread = std::thread(fakeLegacyServiceThread);
-    sleep(1);
+    usleep(500000);
 
     std::shared_ptr<CommonAPI::Runtime> runtime = CommonAPI::Runtime::load();
     ASSERT_TRUE((bool)runtime);
@@ -259,7 +264,7 @@ TEST_F(AddressTranslatorTest, FakeLegacyServiceCanBeAddressed) {
 
     //end the fake legacy service via dbus
     int resultCode = system("python ./src/test/fakeLegacyService/sendToFakeLegacyService.py finish");
-    EXPECT_EQ(0, resultCode);
+    ASSERT_EQ(0, resultCode);
 
     fakeServiceThread.join();
 }
index 5eeb765..e610d2a 100644 (file)
@@ -73,6 +73,7 @@ class DBusCommunicationTest: public ::testing::Test {
     }
 
     virtual void TearDown() {
+        usleep(30000);
     }
 
     std::shared_ptr<CommonAPI::Runtime> runtime_;
@@ -93,10 +94,18 @@ TEST_F(DBusCommunicationTest, RemoteMethodCallSucceeds) {
     ASSERT_TRUE((bool)defaultTestProxy);
 
     auto stub = std::make_shared<commonapi::tests::TestInterfaceStubDefault>();
-    bool success = stubFactory_->registerService(stub, serviceAddress_);
-    ASSERT_TRUE(success);
 
-    sleep(1);
+    bool serviceRegistered = stubFactory_->registerService(stub, serviceAddress_);
+    for(unsigned int i = 0; !serviceRegistered && i < 100; ++i) {
+        serviceRegistered = stubFactory_->registerService(stub, serviceAddress_);
+        usleep(10000);
+    }
+    ASSERT_TRUE(serviceRegistered);
+
+    for(unsigned int i = 0; !defaultTestProxy->isAvailable() && i < 100; ++i) {
+        usleep(10000);
+    }
+    ASSERT_TRUE(defaultTestProxy->isAvailable());
 
     uint32_t v1 = 5;
     std::string v2 = "Ciao ;)";
@@ -114,10 +123,17 @@ TEST_F(DBusCommunicationTest, RemoteMethodCallWithNonstandardAddressSucceeds) {
     ASSERT_TRUE((bool)defaultTestProxy);
 
     auto stub = std::make_shared<commonapi::tests::TestInterfaceStubDefault>();
-    bool success = stubFactory_->registerService(stub, nonstandardAddress_);
-    ASSERT_TRUE(success);
 
-    sleep(1);
+    bool serviceRegistered = stubFactory_->registerService(stub, nonstandardAddress_);
+    for(unsigned int i = 0; !serviceRegistered && i < 100; ++i) {
+        serviceRegistered = stubFactory_->registerService(stub, nonstandardAddress_);
+        usleep(10000);
+    }
+    ASSERT_TRUE(serviceRegistered);
+
+    for(unsigned int i = 0; !defaultTestProxy->isAvailable() && i < 100; ++i) {
+        usleep(10000);
+    }
 
     uint32_t v1 = 5;
     std::string v2 = "Hai :)";
index f708a1f..16338f5 100644 (file)
@@ -54,7 +54,7 @@ TEST_F(DBusDaemonProxyTest, ListNamesAsync) {
                promise.set_value(std::tuple<CommonAPI::CallStatus, std::vector<std::string>>(callStatus, std::move(busNames)));
        });
 
-       auto status = future.wait_for(std::chrono::milliseconds(200));
+       auto status = future.wait_for(std::chrono::milliseconds(500));
        bool waitResult = CommonAPI::DBus::checkReady(status);
     ASSERT_EQ(waitResult, true);
 
index d99cb6b..52330a9 100644 (file)
@@ -45,6 +45,7 @@ class DBusProxyFactoryTest: public ::testing::Test {
     }
 
     virtual void TearDown() {
+        usleep(30000);
     }
 
     std::shared_ptr<CommonAPI::Runtime> runtime_;
index 7197b4a..1112f38 100644 (file)
@@ -35,17 +35,25 @@ class DBusMultipleConnectionTest: public ::testing::Test {
         ASSERT_TRUE((bool)stubFactory);
 
         stub = std::make_shared<commonapi::tests::TestInterfaceStubDefault>();
-        bool success = stubFactory->registerService(stub, serviceAddress);
-        ASSERT_TRUE(success);
+        bool serviceNameAcquired = stubFactory->registerService(stub, serviceAddress);
 
-        sleep(1);
+        for(unsigned int i = 0; !serviceNameAcquired && i < 100; i++) {
+            usleep(10000);
+            serviceNameAcquired = stubFactory->registerService(stub, serviceAddress);
+        }
+        ASSERT_TRUE(serviceNameAcquired);
 
         proxy = proxyFactory->buildProxy<commonapi::tests::TestInterfaceProxy>(serviceAddress);
         ASSERT_TRUE((bool)proxy);
+
+        for(unsigned int i = 0; !proxy->isAvailable() && i < 100; ++i) {
+            usleep(10000);
+        }
     }
 
     virtual void TearDown() {
        stubFactory->unregisterService(serviceAddress);
+       usleep(30000);
     }
 
     std::shared_ptr<CommonAPI::Factory> proxyFactory;
index 4a99c4e..7f8a696 100644 (file)
@@ -52,6 +52,7 @@ protected:
     }
 
     virtual void TearDown() {
+        usleep(30000);
     }
 
     void registerTestStub() {
@@ -94,12 +95,11 @@ protected:
     }
 
     bool proxyWaitForAvailabilityStatus(const CommonAPI::AvailabilityStatus& availabilityStatus) const {
-        std::chrono::milliseconds loopWaitDuration(100);
-
         if (proxyAvailabilityStatus_ == availabilityStatus)
             return true;
 
-        for (int i = 0; i < 10; i++) {
+        std::chrono::milliseconds loopWaitDuration(10);
+        for (int i = 0; i < 100; i++) {
             std::this_thread::sleep_for(loopWaitDuration);
 
             if (proxyAvailabilityStatus_ == availabilityStatus)
@@ -156,6 +156,8 @@ TEST_F(ProxyTest, DBusProxyStatusEventBeforeServiceIsRegistered) {
 
     registerTestStub();
 
+    usleep(500000);
+
     EXPECT_TRUE(proxyWaitForAvailabilityStatus(CommonAPI::AvailabilityStatus::AVAILABLE));
 
     stubDBusConnection_->disconnect();
@@ -227,13 +229,11 @@ TEST_F(ProxyTest, IsAvailableBlocking) {
     registerTestStub();
 
     // blocking in terms of "if it's still unknown"
-    bool isAvailable = proxy_->isAvailableBlocking();
-    for (int i = 0; !isAvailable && i < 10; i++) {
-        std::this_thread::sleep_for(std::chrono::milliseconds(200));
-        isAvailable = proxy_->isAvailableBlocking();
+    for (int i = 0; !proxy_->isAvailableBlocking() && i < 3; i++) {
+        std::this_thread::sleep_for(std::chrono::milliseconds(100));
     }
 
-    EXPECT_TRUE(isAvailable);
+    EXPECT_TRUE(proxy_->isAvailableBlocking());
 
     deregisterTestStub();
 }
index cc7b3f9..2955eb6 100644 (file)
@@ -189,8 +189,8 @@ TEST_F(DBusServiceRegistryTest, PredefinedInstances) {
 
 
         bool isInstanceAlive = dbusServiceRegistry->isServiceInstanceAlive(dbusInterfaceName, dbusServiceName, dbusObjectPath);
-        for (int i = 0; !isInstanceAlive && i < 5; i++) {
-            std::this_thread::sleep_for(std::chrono::milliseconds(500));
+        for (int i = 0; !isInstanceAlive && i < 100; i++) {
+            std::this_thread::sleep_for(std::chrono::milliseconds(10));
             isInstanceAlive = dbusServiceRegistry->isServiceInstanceAlive(dbusInterfaceName, dbusServiceName, dbusObjectPath);
         }
 
@@ -224,7 +224,13 @@ class DBusServiceRegistryTestWithPredefinedRemote: public ::testing::Test {
 
         auto stub = std::make_shared<commonapi::tests::TestInterfaceStubDefault>();
 
-        dbusStubConnection_->requestServiceNameAndBlock("test.instance.name");
+        bool serviceNameAcquired = dbusStubConnection_->requestServiceNameAndBlock("test.instance.name");
+        for(unsigned int i = 0; !serviceNameAcquired && i < 100; ++i) {
+            usleep(10000);
+            serviceNameAcquired = dbusStubConnection_->requestServiceNameAndBlock("test.instance.name");
+        }
+        ASSERT_TRUE(serviceNameAcquired);
+
         stubAdapter_ = std::make_shared<commonapi::tests::TestInterfaceDBusStubAdapter>(
                         "local:test.service.name:test.instance.name",
                         "test.service.name",
@@ -233,10 +239,12 @@ class DBusServiceRegistryTestWithPredefinedRemote: public ::testing::Test {
                         dbusStubConnection_,
                         stub);
         stubAdapter_->init();
+        usleep(200000);
     }
 
     virtual void TearDown() {
        stubAdapter_->deinit();
+       usleep(30000);
     }
 
     std::shared_ptr<CommonAPI::DBus::DBusConnection> dbusConnection_;
@@ -248,13 +256,11 @@ class DBusServiceRegistryTestWithPredefinedRemote: public ::testing::Test {
 
 
 TEST_F(DBusServiceRegistryTestWithPredefinedRemote, RecognizesCommonAPIDBusServiceInstanceAsAlive) {
-    sleep(1);
     ASSERT_TRUE(dbusServiceRegistry_->isServiceInstanceAlive("test.service.name", "test.instance.name", "/test/instance/name"));
 }
 
 
 TEST_F(DBusServiceRegistryTestWithPredefinedRemote, FindsCommonAPIDBusServiceInstance) {
-       sleep(1);
     auto availableServices = dbusServiceRegistry_->getAvailableServiceInstances("test.service.name", "local");
     ASSERT_EQ(1, availableServices.size());
     bool serviceFound;