virtual void TearDown() { for (auto it: rootStubs_) { runtime_->getServicePublisher()->unregisterService(it.first); } rootStubs_.clear(); rootProxies_.clear(); auto dbusServiceFactory = std::dynamic_pointer_cast<CommonAPI::DBus::DBusFactory>(serviceFactory_); auto stubDBusConnection = dbusServiceFactory->getDbusConnection(); ASSERT_TRUE(stubDBusConnection->releaseServiceName(dbusServiceName)); usleep(50000); }
virtual void SetUp() { runtime_ = std::dynamic_pointer_cast<CommonAPI::DBus::DBusRuntime>(CommonAPI::Runtime::load()); serviceFactory_ = runtime_->createFactory(); clientFactory_ = runtime_->createFactory(); leafInstanceAvailability = CommonAPI::AvailabilityStatus::UNKNOWN; branchInstanceAvailability = CommonAPI::AvailabilityStatus::UNKNOWN; manualTestDBusConnection_ = CommonAPI::DBus::DBusConnection::getSessionBus(); ASSERT_TRUE(manualTestDBusConnection_->connect()); auto dbusServiceFactory = std::dynamic_pointer_cast<CommonAPI::DBus::DBusFactory>(serviceFactory_); auto stubDBusConnection = dbusServiceFactory->getDbusConnection(); ASSERT_TRUE(stubDBusConnection->connect()); ASSERT_TRUE(stubDBusConnection->requestServiceNameAndBlock(dbusServiceName)); }
/** * @internal * Send Elektra's D-Bus message. * * @param signalName signal name * @param keyName key name */ static void dbusSendMessage (const char * signalName, const char * keyName) { DBusMessage * message; const char * interface = "org.libelektra"; const char * path = "/org/libelektra/configuration"; DBusConnection * connection = getDbusConnection (testBusType); exit_if_fail (connection != NULL, "could not get bus connection"); message = dbus_message_new_signal (path, interface, signalName); exit_if_fail (message, "could not allocate dbus message"); exit_if_fail (dbus_message_append_args (message, DBUS_TYPE_STRING, &keyName, DBUS_TYPE_INVALID), "could not add message arguments"); dbus_connection_send (connection, message, NULL); dbus_message_unref (message); dbus_connection_unref (connection); return; }