From 02987671e5335cb767e0a0c64391dd44dec9e737 Mon Sep 17 00:00:00 2001 From: Aleksandar Donchev Date: Tue, 2 Jun 2015 10:57:57 +0200 Subject: * Common-API 3 integration and fix for the asserts order in the router tests. Signed-off-by: Christian Linke --- AudioManagerDaemon/CMakeLists.txt | 36 ++-- AudioManagerDaemon/fidls/NodeStateManager.fdepl | 2 +- .../include/CAmNodeStateCommunicatorCAPI.h | 59 ++++--- .../src/CAmNodeStateCommunicatorCAPI.cpp | 67 ++++---- .../CAmNodeStateCommunicatorTest.cpp | 3 +- .../AmNodeStateCommunicatorCAPITest/CMakeLists.txt | 15 +- .../test/AmNodeStateCommunicatorCAPITest/nsm.py | 188 ++++++++++----------- .../AmNodeStateCommunicatorCAPITest/send2nsm.py | 10 +- .../test/AmRouterMapTest/CAmRouterMapTest.cpp | 34 ++-- .../test/AmRouterTest/CAmRouterTest.cpp | 4 +- 10 files changed, 228 insertions(+), 190 deletions(-) (limited to 'AudioManagerDaemon') diff --git a/AudioManagerDaemon/CMakeLists.txt b/AudioManagerDaemon/CMakeLists.txt index 58c5929..b52e625 100644 --- a/AudioManagerDaemon/CMakeLists.txt +++ b/AudioManagerDaemon/CMakeLists.txt @@ -45,12 +45,13 @@ if (WITH_SYSTEMD_WATCHDOG) endif(SYSTEMD_FOUND) endif (WITH_SYSTEMD_WATCHDOG) -if(WITH_DBUS_WRAPPER) +if(WITH_DBUS_WRAPPER) find_package(DBUS REQUIRED) endif(WITH_DBUS_WRAPPER) if(WITH_CAPI_WRAPPER) - find_package(CommonAPI REQUIRED) + INCLUDE (CommonAPI) + LOAD_COMMONAPI(DBUS) endif(WITH_CAPI_WRAPPER) set (AM_LINK_LIBS @@ -103,15 +104,18 @@ if(WITH_DBUS_WRAPPER) ${DBUS_LIBRARY}) endif(WITH_DBUS_WRAPPER) +set (AM_LINK_LIBS + ${AM_LINK_LIBS} + ${DBUS_LIBRARY}) + if(WITH_CAPI_WRAPPER) set (AUDIOMAN_SRCS_CXX ${AUDIOMAN_SRCS_CXX} "${AUDIOMANAGER_UTILITIES_SRC}/CAmCommonAPIWrapper.cpp") set (AM_LINK_LIBS - ${AM_LINK_LIBS} - ${DBUS_LIBRARY} - ${COMMON_API_LIBRARIES} - ${COMMON_API_DBUS_LIBRARIES}) + ${AM_LINK_LIBS} + ${CommonAPI-DBus_LIBRARY} + ${CommonAPI_LIBRARY}) endif(WITH_CAPI_WRAPPER) if(WITH_NSM) @@ -151,24 +155,22 @@ INCLUDE_DIRECTORIES( ) if(WITH_CAPI_WRAPPER) - if(WITH_NSM) - include (CommonAPIGenerator) COMMON_API_GENERATE_SOUCRES(TARGET COMMON_API - FIDLS fidls/NodeStateManager.fidl # a list with fidls - DESTINATION src-gen # a relative path to the build directory or an absolute path + FIDLS fidls/NodeStateManager.fdepl # a list with fidls + DESTINATION src-gen # a relative path to the build directory or an absolute path ALT_DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/src-gen # an alternative relative/absolute path with common-api sources, usually in the source tree - DBUS) + ) + set(AUDIOMAN_SRCS_CXX ${AUDIOMAN_SRCS_CXX} ${COMMON_API_GEN_SOURCES}) endif(WITH_NSM) INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES} - ${COMMON_API_INCLUDE_DIRS} - ${COMMON_API_DBUS_INCLUDE_DIRS} - ${COMMON_API_GEN_INCLUDE_DIR}) - + ${COMMONAPI_DBUS_INCLUDE_DIRS} + ${COMMONAPI_INCLUDE_DIRS} + ${COMMON_API_GEN_INCLUDE_DIR}) endif(WITH_CAPI_WRAPPER) if(WITH_DLT) @@ -179,11 +181,11 @@ if(WITH_DLT) ${DLT_LIBRARIES}) endif(WITH_DLT) -if(WITH_DBUS_WRAPPER) +#if(WITH_DBUS_WRAPPER) INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES} ${DBUS_ARCH_INCLUDE_DIR} ${DBUS_INCLUDE_DIR}) -endif(WITH_DBUS_WRAPPER) +#endif(WITH_DBUS_WRAPPER) ADD_EXECUTABLE(AudioManager ${AUDIOMAN_SRCS_CXX}) diff --git a/AudioManagerDaemon/fidls/NodeStateManager.fdepl b/AudioManagerDaemon/fidls/NodeStateManager.fdepl index e524417..489e85e 100644 --- a/AudioManagerDaemon/fidls/NodeStateManager.fdepl +++ b/AudioManagerDaemon/fidls/NodeStateManager.fdepl @@ -1,6 +1,6 @@ import "platform:/plugin/org.genivi.commonapi.dbus/deployment/CommonAPI-DBus_deployment.fdepl" import "NodeStateManager.fidl" -define org.genivi.commonapi.dbus.deployment.deployment for interface org.genivi.NodeStateManager.Consumer { +define org.genivi.commonapi.dbus.deployment for interface org.genivi.NodeStateManager.Consumer { PropertiesType=freedesktop } diff --git a/AudioManagerDaemon/include/CAmNodeStateCommunicatorCAPI.h b/AudioManagerDaemon/include/CAmNodeStateCommunicatorCAPI.h index 44c8149..ab89526 100644 --- a/AudioManagerDaemon/include/CAmNodeStateCommunicatorCAPI.h +++ b/AudioManagerDaemon/include/CAmNodeStateCommunicatorCAPI.h @@ -23,27 +23,37 @@ #ifndef CAMNODESTATECOMMUNICATORCAPI_H_ #define CAMNODESTATECOMMUNICATORCAPI_H_ -#include #include "CAmNodeStateCommunicator.h" -#include +#include "CAmCommonAPIWrapper.h" +#include +#include + namespace am { -using namespace CommonAPI; -using namespace org::genivi::NodeStateManager; + +#define am_nodestatemanager v1_0::org::genivi::NodeStateManager class CAmCommonAPIWrapper; /** communicates with the NSM - * The CAmNodeStateCommunicator communicates with the NodeStateManager via Dbus Common-API's wrapping mechanism. Only works, if CAmCommonAPIWrapper is enabled. + * The CAmNodeStateCommunicator communicates with the NodeStateManager via Common-API wrapping mechanism. It works only, if CAmCommonAPIWrapper is enabled. */ class CAmNodeStateCommunicatorCAPI : public CAmNodeStateCommunicator { + static const char * DEFAULT_DOMAIN_STRING; + static const char * CLIENT_INSTANCE_STRING; + static const char * CLIENT_INTERFACE_STRING; + static const char * LIFECYCLE_SERVICE_INSTANCE_STRING; + static const char * LIFECYCLE_SERVICE_INTERFACE_STRING; + static const char * OBJECT_NAME; + static const char * BUS_NAME; + /* A concrete implementation of the life cycle stub. * An object from this class is instantiated from the common-api factory. * It forwards the invocations to its delegate CAmNodeStateCommunicatorCAPI. */ - class CAmNodeStateCommunicatorServiceImpl : public LifeCycleConsumerStubDefault + class CAmNodeStateCommunicatorServiceImpl : public am_nodestatemanager::LifeCycleConsumerStubDefault { CAmNodeStateCommunicatorCAPI *mpDelegate; public: @@ -58,11 +68,29 @@ class CAmNodeStateCommunicatorCAPI : public CAmNodeStateCommunicator if(mpDelegate) mpDelegate->cbReceivedLifecycleRequest(Request, RequestId, ErrorCode); } + + void LifecycleRequest(const std::shared_ptr client, uint32_t Request, uint32_t RequestId, LifecycleRequestReply_t reply){ + int32_t ErrorCode; + LifecycleRequest(Request, RequestId, ErrorCode); + reply(ErrorCode); + } }; CAmCommonAPIWrapper *mpCAPIWrapper; - std::shared_ptr > mNSMProxy; + std::shared_ptr > mNSMProxy; std::shared_ptr mNSMStub; + + /* Client events */ + void onNodeStateEvent(const int32_t nodeState); + void onNodeApplicationModeEvent(const int32_t nodeApplicationMode); + void onSessionStateChangedEvent(const std::string & sessionName, const int32_t seatID, const int32_t sessionState); + void onServiceStatusEvent(const CommonAPI::AvailabilityStatus& serviceStatus); + /* Service callbacks */ + void cbReceivedLifecycleRequest(uint32_t Request, uint32_t RequestId, int32_t& ErrorCode); + +protected: + bool mIsServiceAvailable; + public: CAmNodeStateCommunicatorCAPI(CAmCommonAPIWrapper* iCAPIWrapper); virtual ~CAmNodeStateCommunicatorCAPI(); @@ -77,24 +105,7 @@ public: NsmErrorStatus_e nsmUnRegisterShutdownClient(const uint32_t shutdownMode) ; am_Error_e nsmGetInterfaceVersion(uint32_t& version) ; NsmErrorStatus_e nsmSendLifecycleRequestComplete(const uint32_t RequestId, const NsmErrorStatus_e status) ; - bool isServiceAvailable(); - - static const char * CLIENT_STRING; - static const char * SERVER_STRING; - static const char * OBJECT_NAME; - static const char * BUS_NAME; - -private: - /* Client events */ - void onNodeStateEvent(const int32_t nodeState); - void onNodeApplicationModeEvent(const int32_t nodeApplicationMode); - void onSessionStateChangedEvent(const std::string & sessionName, const int32_t seatID, const int32_t sessionState); - void onServiceStatusEvent(const CommonAPI::AvailabilityStatus& serviceStatus); - /* Service callbacks */ - void cbReceivedLifecycleRequest(uint32_t Request, uint32_t RequestId, int32_t& ErrorCode); -protected: - bool mIsServiceAvailable; }; } diff --git a/AudioManagerDaemon/src/CAmNodeStateCommunicatorCAPI.cpp b/AudioManagerDaemon/src/CAmNodeStateCommunicatorCAPI.cpp index 7081fe5..700c9c3 100644 --- a/AudioManagerDaemon/src/CAmNodeStateCommunicatorCAPI.cpp +++ b/AudioManagerDaemon/src/CAmNodeStateCommunicatorCAPI.cpp @@ -28,23 +28,28 @@ #include #include #include -#include #include "config.h" -#include "CAmCommonAPIWrapper.h" #include "CAmDltWrapper.h" #include "CAmNodeStateCommunicatorCAPI.h" #include "CAmControlSender.h" -#include +#include namespace am { -const char * CAmNodeStateCommunicatorCAPI::CLIENT_STRING = "local:org.genivi.NodeStateManager.Consumer:org.genivi.NodeStateManager"; -const char * CAmNodeStateCommunicatorCAPI::SERVER_STRING = "local:org.genivi.NodeStateManager.LifeCycleConsumer:org.genivi.audiomanager"; +#define LIFECYCLE_SERVICE_INTERFACE NSM_BUS_INTERFACE ".LifeCycleConsumer" -const char * CAmNodeStateCommunicatorCAPI::OBJECT_NAME = "/org/genivi/audiomanager/LifeCycleConsumer"; -const char * CAmNodeStateCommunicatorCAPI::BUS_NAME = "org.genivi.audiomanager"; +const char * CAmNodeStateCommunicatorCAPI::DEFAULT_DOMAIN_STRING = "local"; + +const char * CAmNodeStateCommunicatorCAPI::CLIENT_INSTANCE_STRING = NSM_BUS_INTERFACE; +const char * CAmNodeStateCommunicatorCAPI::CLIENT_INTERFACE_STRING = NSM_INTERFACE; + +const char * CAmNodeStateCommunicatorCAPI::LIFECYCLE_SERVICE_INSTANCE_STRING = DBUS_SERVICE_PREFIX; +const char * CAmNodeStateCommunicatorCAPI::LIFECYCLE_SERVICE_INTERFACE_STRING = LIFECYCLE_SERVICE_INTERFACE; + +const char * CAmNodeStateCommunicatorCAPI::OBJECT_NAME = DBUS_SERVICE_OBJECT_PATH; +const char * CAmNodeStateCommunicatorCAPI::BUS_NAME = LIFECYCLE_SERVICE_INTERFACE "_" DBUS_SERVICE_PREFIX; #define IF_NOT_AVAILABLE_RETURN(error) \ @@ -53,13 +58,13 @@ if(!mIsServiceAvailable) { logError(__PRETTY_FUNCTION__, "Node State Manager not /** * Retrieves the value from given attribute wrapper. */ -template am_Error_e getAttributeValue(Attribute* attribute, TValueReturnType & resultValue) +template am_Error_e getAttributeValue(CommonAPI::Attribute* attribute, TValueReturnType & resultValue) { - CallStatus status; - typename Attribute::ValueType value; + CommonAPI::CallStatus status; + typename CommonAPI::Attribute::ValueType value; attribute->getValue(status, value); std::cout << std::endl << "CallStatus : " << static_cast(status) << std::endl; - if( CallStatus::SUCCESS == status) + if( CommonAPI::CallStatus::SUCCESS == status) { resultValue = static_cast(value); return E_OK; @@ -77,9 +82,8 @@ CAmNodeStateCommunicatorCAPI::CAmNodeStateCommunicatorCAPI(CAmCommonAPIWrapper* logInfo("CAmNodeStateCommunicatorCAPI::CAmNodeStateCommunicatorCAPI started"); //Gets the factory pointer and build a proxy object - std::shared_ptr factory = iCAPIWrapper->factory(); - mNSMProxy = factory->buildProxy(CAmNodeStateCommunicatorCAPI::CLIENT_STRING); - + mNSMProxy = iCAPIWrapper->buildProxy( CAmNodeStateCommunicatorCAPI::DEFAULT_DOMAIN_STRING, + CAmNodeStateCommunicatorCAPI::CLIENT_INSTANCE_STRING); //Makes subscriptions to the following 3 events mNSMProxy->getNodeStateEvent().subscribe( std::bind(&CAmNodeStateCommunicatorCAPI::onNodeStateEvent, this, std::placeholders::_1) @@ -95,13 +99,16 @@ CAmNodeStateCommunicatorCAPI::CAmNodeStateCommunicatorCAPI(CAmCommonAPIWrapper* mNSMStub = std::make_shared(this); //Registers the service - iCAPIWrapper->registerStub(mNSMStub, CAmNodeStateCommunicatorCAPI::SERVER_STRING); + if(!iCAPIWrapper->registerService(mNSMStub,CAmNodeStateCommunicatorCAPI::DEFAULT_DOMAIN_STRING,CAmNodeStateCommunicatorCAPI::LIFECYCLE_SERVICE_INSTANCE_STRING)) + logError("AudioManager can't register service"); } CAmNodeStateCommunicatorCAPI::~CAmNodeStateCommunicatorCAPI() { mNSMProxy.reset(); - mpCAPIWrapper->unregisterStub(CAmNodeStateCommunicatorCAPI::SERVER_STRING); + mpCAPIWrapper->unregisterService(CAmNodeStateCommunicatorCAPI::DEFAULT_DOMAIN_STRING, + CAmNodeStateCommunicatorCAPI::LIFECYCLE_SERVICE_INTERFACE_STRING, + CAmNodeStateCommunicatorCAPI::LIFECYCLE_SERVICE_INSTANCE_STRING); mNSMStub->setDelegate(NULL); mNSMStub.reset(); mpCAPIWrapper = NULL; @@ -179,10 +186,10 @@ NsmErrorStatus_e CAmNodeStateCommunicatorCAPI::nsmGetNodeState(NsmNodeState_e& n //Check the service via the proxy object is available IF_NOT_AVAILABLE_RETURN(NsmErrorStatus_Error) - CallStatus callStatus; + CommonAPI::CallStatus callStatus; int32_t tmpNodeState = 0, errorCode = 0; mNSMProxy->GetNodeState(callStatus, tmpNodeState, errorCode); - if( CallStatus::SUCCESS == callStatus ) + if( CommonAPI::CallStatus::SUCCESS == callStatus ) { nsmNodeState = static_cast(tmpNodeState); return (static_cast(errorCode)); @@ -202,11 +209,11 @@ NsmErrorStatus_e CAmNodeStateCommunicatorCAPI::nsmGetSessionState(const std::str //Check the service via the proxy object is available IF_NOT_AVAILABLE_RETURN(NsmErrorStatus_Error) - CallStatus callStatus; + CommonAPI::CallStatus callStatus; int32_t tmpSessionState = 0 , errorCode = 0; mNSMProxy->GetSessionState(sessionName,seatID,callStatus, tmpSessionState, errorCode); - if( CallStatus::SUCCESS == callStatus) + if( CommonAPI::CallStatus::SUCCESS == callStatus) { sessionState = static_cast(tmpSessionState); return (static_cast(errorCode)); @@ -224,10 +231,10 @@ NsmErrorStatus_e CAmNodeStateCommunicatorCAPI::nsmGetApplicationMode(NsmApplicat //Check the service via the proxy object is available IF_NOT_AVAILABLE_RETURN(NsmErrorStatus_Error) - CallStatus callStatus; + CommonAPI::CallStatus callStatus; int32_t tmpAppMode = 0 , errorCode = 0; mNSMProxy->GetApplicationMode(callStatus, tmpAppMode, errorCode); - if( CallStatus::SUCCESS == callStatus) + if( CommonAPI::CallStatus::SUCCESS == callStatus) { applicationMode = static_cast(tmpAppMode); return (static_cast(errorCode)); @@ -246,12 +253,12 @@ NsmErrorStatus_e CAmNodeStateCommunicatorCAPI::nsmRegisterShutdownClient(const u //Check the service via the proxy object is available IF_NOT_AVAILABLE_RETURN(NsmErrorStatus_Error) - CallStatus callStatus; + CommonAPI::CallStatus callStatus; int32_t errorCode = 0; std::string objName = std::string(CAmNodeStateCommunicatorCAPI::OBJECT_NAME); std::string busName = std::string(CAmNodeStateCommunicatorCAPI::BUS_NAME); mNSMProxy->RegisterShutdownClient(busName, objName, shutdownMode, timeoutMs, callStatus, errorCode); - if( CallStatus::SUCCESS == callStatus) + if( CommonAPI::CallStatus::SUCCESS == callStatus) return (static_cast(errorCode)); return NsmErrorStatus_Dbus; @@ -267,12 +274,12 @@ NsmErrorStatus_e CAmNodeStateCommunicatorCAPI::nsmUnRegisterShutdownClient(const //Check the service via the proxy object is available IF_NOT_AVAILABLE_RETURN(NsmErrorStatus_Error) - CallStatus callStatus; + CommonAPI::CallStatus callStatus; int32_t errorCode = 0; std::string objName = std::string(CAmNodeStateCommunicatorCAPI::OBJECT_NAME); std::string busName = std::string(CAmNodeStateCommunicatorCAPI::BUS_NAME); mNSMProxy->UnRegisterShutdownClient(busName, objName, shutdownMode, callStatus, errorCode); - if( CallStatus::SUCCESS == callStatus) + if( CommonAPI::CallStatus::SUCCESS == callStatus) return (static_cast(errorCode)); return NsmErrorStatus_Dbus; } @@ -287,9 +294,9 @@ am_Error_e CAmNodeStateCommunicatorCAPI::nsmGetInterfaceVersion(uint32_t& versio //Check the service via the proxy object is available IF_NOT_AVAILABLE_RETURN(E_NOT_POSSIBLE) - CallStatus callStatus; + CommonAPI::CallStatus callStatus; mNSMProxy->GetInterfaceVersion(callStatus, version); - if( CallStatus::SUCCESS == callStatus) + if( CommonAPI::CallStatus::SUCCESS == callStatus) return E_OK; return E_UNKNOWN; } @@ -305,10 +312,10 @@ NsmErrorStatus_e CAmNodeStateCommunicatorCAPI::nsmSendLifecycleRequestComplete(c //Check the service via the proxy object is available IF_NOT_AVAILABLE_RETURN(NsmErrorStatus_Error) - CallStatus callStatus; + CommonAPI::CallStatus callStatus; int32_t errorCode = 0; mNSMProxy->LifecycleRequestComplete(RequestId, status, callStatus, errorCode); - if( CallStatus::SUCCESS == callStatus) + if( CommonAPI::CallStatus::SUCCESS == callStatus) { return (static_cast(errorCode)); } diff --git a/AudioManagerDaemon/test/AmNodeStateCommunicatorCAPITest/CAmNodeStateCommunicatorTest.cpp b/AudioManagerDaemon/test/AmNodeStateCommunicatorCAPITest/CAmNodeStateCommunicatorTest.cpp index 9bb95e2..d9e0fd0 100644 --- a/AudioManagerDaemon/test/AmNodeStateCommunicatorCAPITest/CAmNodeStateCommunicatorTest.cpp +++ b/AudioManagerDaemon/test/AmNodeStateCommunicatorCAPITest/CAmNodeStateCommunicatorTest.cpp @@ -49,7 +49,8 @@ CAmNodeStateCommunicatorTest::~CAmNodeStateCommunicatorTest() */ void* nsmThread (void*) { - system("python nsm.py"); + if(-1 == system("python nsm.py")) + logError("Something went wrong with nsm.py!"); return (NULL); } diff --git a/AudioManagerDaemon/test/AmNodeStateCommunicatorCAPITest/CMakeLists.txt b/AudioManagerDaemon/test/AmNodeStateCommunicatorCAPITest/CMakeLists.txt index 018d71a..9c2d1a2 100644 --- a/AudioManagerDaemon/test/AmNodeStateCommunicatorCAPITest/CMakeLists.txt +++ b/AudioManagerDaemon/test/AmNodeStateCommunicatorCAPITest/CMakeLists.txt @@ -22,7 +22,6 @@ project(AmNodeStateCommunicatorCAPITest) set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -DUNIT_TEST=1") find_package(Threads) -find_package(CommonAPI REQUIRED) find_package(PythonLibs REQUIRED) set (AM_LINK_LIBS @@ -43,9 +42,11 @@ INCLUDE_DIRECTORIES( ${PYTHON_INCLUDE_DIRS} ${GOOGLE_TEST_INCLUDE_DIR} ${GMOCK_INCLUDE_DIR} - ${COMMON_API_INCLUDE_DIRS} - ${COMMON_API_DBUS_INCLUDE_DIRS} + ${COMMONAPI_DBUS_INCLUDE_DIRS} + ${COMMONAPI_INCLUDE_DIRS} ${COMMON_API_GEN_INCLUDE_DIR} + ${DBUS_ARCH_INCLUDE_DIR} + ${DBUS_INCLUDE_DIR} ) if(WITH_DLT) @@ -77,8 +78,9 @@ TARGET_LINK_LIBRARIES(AmNodeStateCommunicatorCAPITest ${AM_LINK_LIBS} ${CMAKE_THREAD_LIBS_INIT} ${PYTHON_LIBRARY} - ${COMMON_API_LIBRARIES} - ${COMMON_API_DBUS_LIBRARIES} + ${CommonAPI-DBus_LIBRARY} + ${CommonAPI_LIBRARY} + ${DBUS_LIBRARY} gtest gmock ) @@ -106,6 +108,7 @@ if(USE_BUILD_LIBS) COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/org.genivi.NodeStateManager.Consumer.xml" ${EXECUTABLE_OUTPUT_PATH}/org.genivi.NodeStateManager.Consumer.xml COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/nsm.py" ${EXECUTABLE_OUTPUT_PATH}/nsm.py COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/send2nsm.py" ${EXECUTABLE_OUTPUT_PATH}/send2nsm.py - COMMAND cp "${AUDIOMANAGER_DAEMON_FOLDER}/fidls/NodeStateManager_dbus.conf" ${EXECUTABLE_OUTPUT_PATH}/AmNodeStateCommunicatorCAPITest_dbus.conf) +# COMMAND cp "${AUDIOMANAGER_DAEMON_FOLDER}/fidls/NodeStateManager_dbus.conf" ${EXECUTABLE_OUTPUT_PATH}/AmNodeStateCommunicatorCAPITest_dbus.conf + ) endif(USE_BUILD_LIBS) diff --git a/AudioManagerDaemon/test/AmNodeStateCommunicatorCAPITest/nsm.py b/AudioManagerDaemon/test/AmNodeStateCommunicatorCAPITest/nsm.py index 74dae54..c648484 100644 --- a/AudioManagerDaemon/test/AmNodeStateCommunicatorCAPITest/nsm.py +++ b/AudioManagerDaemon/test/AmNodeStateCommunicatorCAPITest/nsm.py @@ -31,7 +31,7 @@ dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) class NodeStateManager(dbus.service.Object): def __init__(self, loop): - busName = dbus.service.BusName('org.genivi.NodeStateManager', bus = dbus.SessionBus()) + busName = dbus.service.BusName('org.genivi.NodeStateManager.Consumer_org.genivi.NodeStateManager', bus = dbus.SessionBus()) dbus.service.Object.__init__(self, busName, '/org/genivi/NodeStateManager') self.properties = {'RestartReason': 1, 'ShutdownReason': 2, 'WakeUpReason' :3, 'BootMode' :4} self.ABus="" @@ -40,140 +40,140 @@ class NodeStateManager(dbus.service.Object): @dbus.service.method(dbus_interface='org.freedesktop.DBus.Introspectable', out_signature = 's') def Introspect(self): - f = open('org.genivi.NodeStateManager.Consumer.xml', "r") - text = f.read() - return text + f = open('org.genivi.NodeStateManager.Consumer.xml', "r") + text = f.read() + return text @dbus.service.method(dbus_interface='org.genivi.NodeStateManager.Consumer', out_signature = 'ii') def GetNodeState(self): - NodeStateId=1 - ErrorCode=1 - print('[-----nsm-----] send out nodeState' + str(NodeStateId) + ' ErrorCode '+ str(1)) - return NodeStateId, ErrorCode - + NodeStateId=1 + ErrorCode=1 + print('[-----nsm-----] send out nodeState' + str(NodeStateId) + ' ErrorCode '+ str(1)) + return NodeStateId, ErrorCode + @dbus.service.method('org.genivi.NodeStateManager.Consumer', out_signature = 'ii') def GetApplicationMode(self): - ApplicationModeId=5 - ErrorCode=2 - print('[-----nsm-----] send out ApplicationMode' + str(ApplicationModeId) + ' ErrorCode '+ str(2)) - return ApplicationModeId, ErrorCode + ApplicationModeId=5 + ErrorCode=2 + print('[-----nsm-----] send out ApplicationMode' + str(ApplicationModeId) + ' ErrorCode '+ str(2)) + return ApplicationModeId, ErrorCode @dbus.service.method('org.genivi.NodeStateManager.Consumer', in_signature='si', out_signature = 'ii') def GetSessionState(self,SessionName,seatID): - SessionState=0 - ErrorCode=2 - - if SessionName=="mySession" and seatID==1: - SessionState=5 - ErrorCode=1 - - print('[-----nsm-----] GetSessionState for session ' + SessionName + ' seatID '+ str(seatID) + ' returnState ' + str (SessionState)) - return SessionState, ErrorCode - + SessionState=0 + ErrorCode=2 + + if SessionName=="mySession" and seatID==1: + SessionState=5 + ErrorCode=1 + + print('[-----nsm-----] GetSessionState for session ' + SessionName + ' seatID '+ str(seatID) + ' returnState ' + str (SessionState)) + return SessionState, ErrorCode + @dbus.service.method('org.genivi.NodeStateManager.Consumer', in_signature='ssuu', out_signature = 'i') def RegisterShutdownClient(self,BName,ObjName,ShutdownMode,TimeoutMs): - print('[-----nsm-----] Busname: ' + BName) - print('[-----nsm-----] ObjName: ' + ObjName) - print('[-----nsm-----] ShutdownMode: ' + str(ShutdownMode)) - print('[-----nsm-----] TimeoutMs: ' + str(TimeoutMs)) - ErrorCode=1 - if TimeoutMs!=100: - ErrorCode=3 - if BName!="org.genivi.audiomanager": - ErrorCode=4 - if ShutdownMode!=1: - ErrorCode=5 - if ObjName!="/org/genivi/audiomanager/LifeCycleConsumer": - ErrorCode=6 - self.ABus=BName - self.APath=ObjName - return ErrorCode - + print('[-----nsm-----] Busname: ' + BName) + print('[-----nsm-----] ObjName: ' + ObjName) + print('[-----nsm-----] ShutdownMode: ' + str(ShutdownMode)) + print('[-----nsm-----] TimeoutMs: ' + str(TimeoutMs)) + ErrorCode=1 + if TimeoutMs!=100: + ErrorCode=3 + if BName!="org.genivi.NodeStateManager.LifeCycleConsumer_org.genivi.audiomanager": + ErrorCode=4 + if ShutdownMode!=1: + ErrorCode=5 + if ObjName!="/org/genivi/audiomanager": + ErrorCode=6 + self.ABus=BName + self.APath=ObjName + return ErrorCode + @dbus.service.method('org.genivi.NodeStateManager.Consumer', in_signature='ssu', out_signature = 'i') def UnRegisterShutdownClient(self,BusName,ObjName,ShutdownMode): - print('[-----nsm-----] Busname: ' + str(BusName)) - print('[-----nsm-----] ObjName: ' + str(ObjName)) - print('[-----nsm-----] ShutdownMode: ' + str(ShutdownMode)) - ErrorCode=1 - if BusName!=self.ABus: - ErrorCode=2 - if ObjName!=self.APath: - ErrorCode=2 - if ShutdownMode!=1: - ErrorCode=2 - return ErrorCode - + print('[-----nsm-----] Busname: ' + str(BusName)) + print('[-----nsm-----] ObjName: ' + str(ObjName)) + print('[-----nsm-----] ShutdownMode: ' + str(ShutdownMode)) + ErrorCode=1 + if BusName!=self.ABus: + ErrorCode=2 + if ObjName!=self.APath: + ErrorCode=2 + if ShutdownMode!=1: + ErrorCode=2 + return ErrorCode + @dbus.service.method(dbus_interface='org.genivi.NodeStateManager.Consumer', out_signature = 'u') def GetInterfaceVersion(self): - version=23 - return version - + version=23 + return version + @dbus.service.method('org.genivi.NodeStateManager.Consumer', in_signature='ui', out_signature='i') def LifecycleRequestComplete(self,RequestID,Status): - print('[-----nsm-----] RequestId: ' + str(RequestID)) - print('[-----nsm-----] Status: ' + str(Status)) - ErrorCode=1 - if RequestID!=22: - ErrorCode=2 - if Status!=4: - ErrorCode=2 - return ErrorCode + print('[-----nsm-----] RequestId: ' + str(RequestID)) + print('[-----nsm-----] Status: ' + str(Status)) + ErrorCode=1 + if RequestID!=22: + ErrorCode=2 + if Status!=4: + ErrorCode=2 + return ErrorCode @dbus.service.method(dbus.PROPERTIES_IFACE, in_signature='ss', out_signature='v') def Get(self, interface, prop): - if prop in self.properties: - print('[-----nsm-----] send out ' + str(self.properties[prop]) + ' for property '+ prop) - return self.properties[prop] - return 0 + if prop in self.properties: + print('[-----nsm-----] send out ' + str(self.properties[prop]) + ' for property '+ prop) + return self.properties[prop] + return 0 @dbus.service.method(dbus.PROPERTIES_IFACE, in_signature='ssv') def Set(self, interface, prop, value): - return 3 + return 3 @dbus.service.method(dbus.PROPERTIES_IFACE, in_signature='s', out_signature='a{sv}') def GetAll(self, interface): - return self.properties - + return self.properties + @dbus.service.signal(dbus_interface='org.genivi.NodeStateManager.Consumer', signature='i') def NodeApplicationMode(self, ApplicationModeId): - print "[-----nsm-----] Send out application mode ID %d" % (ApplicationModeId) - + print "[-----nsm-----] Send out application mode ID %d" % (ApplicationModeId) + @dbus.service.signal(dbus_interface='org.genivi.NodeStateManager.Consumer', signature='i') def NodeState(self, NodeState): - print "[-----nsm-----] Send out NodeState %d" % (NodeState) - + print "[-----nsm-----] Send out NodeState %d" % (NodeState) + @dbus.service.signal(dbus_interface='org.genivi.NodeStateManager.Consumer', signature='sii') def SessionStateChanged(self, SessionStateName,SeatID,SessionState): - print "[-----nsm-----] Send out SessionStateChanged " + SessionStateName - + print "[-----nsm-----] Send out SessionStateChanged " + SessionStateName + @dbus.service.method('org.genivi.NodeStateManager.Control', in_signature='i') def sendNodeApplicationMode(self, input): - self.NodeApplicationMode(input) - return input - + self.NodeApplicationMode(input) + return input + @dbus.service.method('org.genivi.NodeStateManager.Control', in_signature='i') def sendNodeState(self, input): - self.NodeState(input) - return input - + self.NodeState(input) + return input + @dbus.service.method('org.genivi.NodeStateManager.Control', in_signature='sii') def sendSessionState(self, SessionStateName,SeatID,SessionState): - self.SessionStateChanged (SessionStateName,SeatID,SessionState) - return SeatID - + self.SessionStateChanged (SessionStateName,SeatID,SessionState) + return SeatID + @dbus.service.method('org.genivi.NodeStateManager.Control', in_signature='uu', out_signature='i') def sendLifeCycleRequest(self, request, requestID): - bus = dbus.SessionBus() - remote_object = bus.get_object(self.ABus,self.APath) - iface = dbus.Interface(remote_object, 'org.genivi.NodeStateManager.LifeCycleConsumer') - iface.LifecycleRequest(request,requestID) - return 42 - + bus = dbus.SessionBus() + remote_object = bus.get_object(self.ABus,self.APath) + iface = dbus.Interface(remote_object, 'org.genivi.NodeStateManager.LifeCycleConsumer') + iface.LifecycleRequest(request,requestID) + return 42 + @dbus.service.method('org.genivi.NodeStateManager.Control') def finish(self): - print '[-----nsm-----] Going to exit now!' - self.loop.quit() - return 0 + print '[-----nsm-----] Going to exit now!' + self.loop.quit() + return 0 nsm = NodeStateManager(loop) loop.run() diff --git a/AudioManagerDaemon/test/AmNodeStateCommunicatorCAPITest/send2nsm.py b/AudioManagerDaemon/test/AmNodeStateCommunicatorCAPITest/send2nsm.py index c7e8bf5..5ed6c0c 100644 --- a/AudioManagerDaemon/test/AmNodeStateCommunicatorCAPITest/send2nsm.py +++ b/AudioManagerDaemon/test/AmNodeStateCommunicatorCAPITest/send2nsm.py @@ -27,31 +27,31 @@ import dbus.service def nodeState (nodeState): bus = dbus.SessionBus() - remote_object = bus.get_object('org.genivi.NodeStateManager','/org/genivi/NodeStateManager') + remote_object = bus.get_object('org.genivi.NodeStateManager.Consumer_org.genivi.NodeStateManager','/org/genivi/NodeStateManager') iface = dbus.Interface(remote_object, 'org.genivi.NodeStateManager.Control') iface.sendNodeState(int(nodeState)) def appMode (appMode): bus = dbus.SessionBus() - remote_object = bus.get_object('org.genivi.NodeStateManager','/org/genivi/NodeStateManager') + remote_object = bus.get_object('org.genivi.NodeStateManager.Consumer_org.genivi.NodeStateManager','/org/genivi/NodeStateManager') iface = dbus.Interface(remote_object, 'org.genivi.NodeStateManager.Control') iface.sendNodeApplicationMode(int(appMode)) def sessionState (SessionStateName,SeatID,SessionState): bus = dbus.SessionBus() - remote_object = bus.get_object('org.genivi.NodeStateManager','/org/genivi/NodeStateManager') + remote_object = bus.get_object('org.genivi.NodeStateManager.Consumer_org.genivi.NodeStateManager','/org/genivi/NodeStateManager') iface = dbus.Interface(remote_object, 'org.genivi.NodeStateManager.Control') iface.sendSessionState(SessionStateName,int(SeatID),int(SessionState)) def finish(): bus = dbus.SessionBus() - remote_object = bus.get_object('org.genivi.NodeStateManager','/org/genivi/NodeStateManager') + remote_object = bus.get_object('org.genivi.NodeStateManager.Consumer_org.genivi.NodeStateManager','/org/genivi/NodeStateManager') iface = dbus.Interface(remote_object, 'org.genivi.NodeStateManager.Control') iface.finish() def LifecycleRequest(Request,RequestID): bus = dbus.SessionBus() - remote_object = bus.get_object('org.genivi.NodeStateManager','/org/genivi/NodeStateManager') + remote_object = bus.get_object('org.genivi.NodeStateManager.Consumer_org.genivi.NodeStateManager','/org/genivi/NodeStateManager') iface = dbus.Interface(remote_object, 'org.genivi.NodeStateManager.Control') iface.sendLifeCycleRequest(dbus.UInt32(Request),dbus.UInt32(RequestID)) diff --git a/AudioManagerDaemon/test/AmRouterMapTest/CAmRouterMapTest.cpp b/AudioManagerDaemon/test/AmRouterMapTest/CAmRouterMapTest.cpp index b592f39..3b10f13 100644 --- a/AudioManagerDaemon/test/AmRouterMapTest/CAmRouterMapTest.cpp +++ b/AudioManagerDaemon/test/AmRouterMapTest/CAmRouterMapTest.cpp @@ -2347,13 +2347,13 @@ TEST_F(CAmRouterMapTest,route1Domain1Source3Converters1Sink) ASSERT_EQ(E_OK, pRouter.getRoute(false, source, sink, listRoutes)); ASSERT_EQ(static_cast(2), listRoutes.size()); - ASSERT_TRUE(pCF.compareRoute(compareRoute1,listRoutes[0])); + ASSERT_TRUE(pCF.compareRoute(compareRoute1,listRoutes[0])||pCF.compareRoute(compareRoute1,listRoutes[1])); am_Route_s compareRoute2; compareRoute2.route = listRoutingElements2; compareRoute2.sinkID = sinkID; compareRoute2.sourceID = sourceID; - ASSERT_TRUE(pCF.compareRoute(compareRoute2,listRoutes[1])); + ASSERT_TRUE(pCF.compareRoute(compareRoute2,listRoutes[1])||pCF.compareRoute(compareRoute2,listRoutes[0])); } TEST_F(CAmRouterMapTest,route2Domains1Source1Sink) @@ -2559,7 +2559,6 @@ TEST_F(CAmRouterMapTest,route3Domains1Source3Gateways3Convertres1Sink) compareRoute1.route.push_back({gwSourceID21, gwSinkID3, domainID3, CF_GENIVI_AUTO}); compareRoute1.route.push_back({gwSourceID3, gwSinkID4, domainID3, CF_GENIVI_ANALOG}); compareRoute1.route.push_back({gwSourceID4, sinkID, domainID3, CF_GENIVI_STEREO}); - ASSERT_TRUE(pCF.compareRoute(compareRoute1,listRoutes[0])); am_Route_s compareRoute2; compareRoute2.sinkID = sinkID; @@ -2569,8 +2568,6 @@ TEST_F(CAmRouterMapTest,route3Domains1Source3Gateways3Convertres1Sink) compareRoute2.route.push_back({gwSourceID21, gwSinkID3, domainID3, CF_GENIVI_AUTO}); compareRoute2.route.push_back({gwSourceID3, gwSinkID5, domainID3, CF_GENIVI_ANALOG}); compareRoute2.route.push_back({gwSourceID5, sinkID, domainID3, CF_GENIVI_STEREO}); - ASSERT_TRUE(pCF.compareRoute(compareRoute2,listRoutes[1])); - am_Route_s compareRoute3; compareRoute3.sinkID = sinkID; @@ -2580,7 +2577,6 @@ TEST_F(CAmRouterMapTest,route3Domains1Source3Gateways3Convertres1Sink) compareRoute3.route.push_back({gwSourceID22, gwSinkID3, domainID3, CF_GENIVI_AUTO}); compareRoute3.route.push_back({gwSourceID3, gwSinkID4, domainID3, CF_GENIVI_ANALOG}); compareRoute3.route.push_back({gwSourceID4, sinkID, domainID3, CF_GENIVI_STEREO}); - ASSERT_TRUE(pCF.compareRoute(compareRoute3,listRoutes[2])); am_Route_s compareRoute4; compareRoute4.sinkID = sinkID; @@ -2590,7 +2586,23 @@ TEST_F(CAmRouterMapTest,route3Domains1Source3Gateways3Convertres1Sink) compareRoute4.route.push_back({gwSourceID22, gwSinkID3, domainID3, CF_GENIVI_AUTO}); compareRoute4.route.push_back({gwSourceID3, gwSinkID5, domainID3, CF_GENIVI_ANALOG}); compareRoute4.route.push_back({gwSourceID5, sinkID, domainID3, CF_GENIVI_STEREO}); - ASSERT_TRUE(pCF.compareRoute(compareRoute4,listRoutes[3])); + + ASSERT_TRUE(pCF.compareRoute(compareRoute1,listRoutes[0])|| + pCF.compareRoute(compareRoute1,listRoutes[1])|| + pCF.compareRoute(compareRoute1,listRoutes[2])|| + pCF.compareRoute(compareRoute1,listRoutes[3])); + ASSERT_TRUE(pCF.compareRoute(compareRoute2,listRoutes[0])|| + pCF.compareRoute(compareRoute2,listRoutes[1])|| + pCF.compareRoute(compareRoute2,listRoutes[2])|| + pCF.compareRoute(compareRoute2,listRoutes[3])); + ASSERT_TRUE(pCF.compareRoute(compareRoute3,listRoutes[0])|| + pCF.compareRoute(compareRoute3,listRoutes[1])|| + pCF.compareRoute(compareRoute3,listRoutes[2])|| + pCF.compareRoute(compareRoute3,listRoutes[3])); + ASSERT_TRUE(pCF.compareRoute(compareRoute4,listRoutes[0])|| + pCF.compareRoute(compareRoute4,listRoutes[1])|| + pCF.compareRoute(compareRoute4,listRoutes[2])|| + pCF.compareRoute(compareRoute4,listRoutes[3])); } TEST_F(CAmRouterMapTest,routeSource1Sink2PathThroughConv1Gate1) @@ -2893,17 +2905,19 @@ TEST_F(CAmRouterMapTest, routeSource1Sink1PathThroughConv1Gate1Conv2Gate2) compareRoute1.route.push_back({gwSourceID21, coSinkID21, domainID2, CF_GENIVI_ANALOG}); compareRoute1.route.push_back({coSourceID21, gwSinkID21, domainID2, CF_GENIVI_STEREO}); compareRoute1.route.push_back({gwSourceID12, sinkID, domainID1, CF_GENIVI_AUTO}); - ASSERT_TRUE(pCF.compareRoute(compareRoute1,listRoutes[0])); am_Route_s compareRoute2; compareRoute2.sinkID = sinkID; compareRoute2.sourceID = sourceID; compareRoute2.route.push_back({sourceID, coSinkID12, domainID1, CF_GENIVI_STEREO}); compareRoute2.route.push_back({coSourceID12, coSinkID13, domainID1, 6}); - compareRoute2.route.push_back({coSourceID13, gwSinkID21, domainID1, 5}); + compareRoute2.route.push_back({coSourceID13, gwSinkID11, domainID1, 5}); compareRoute2.route.push_back({gwSourceID21, coSinkID21, domainID2, CF_GENIVI_ANALOG}); + compareRoute2.route.push_back({coSourceID21, gwSinkID21, domainID2, CF_GENIVI_STEREO}); compareRoute2.route.push_back({gwSourceID12, sinkID, domainID1, CF_GENIVI_AUTO}); - ASSERT_TRUE(pCF.compareRoute(compareRoute1,listRoutes[0])); + + ASSERT_TRUE(pCF.compareRoute(compareRoute1,listRoutes[1])||pCF.compareRoute(compareRoute1,listRoutes[0])); + ASSERT_TRUE(pCF.compareRoute(compareRoute2,listRoutes[0])||pCF.compareRoute(compareRoute2,listRoutes[1])); } int main(int argc, char **argv) diff --git a/AudioManagerDaemon/test/AmRouterTest/CAmRouterTest.cpp b/AudioManagerDaemon/test/AmRouterTest/CAmRouterTest.cpp index 36f487e..e88d54b 100644 --- a/AudioManagerDaemon/test/AmRouterTest/CAmRouterTest.cpp +++ b/AudioManagerDaemon/test/AmRouterTest/CAmRouterTest.cpp @@ -1253,8 +1253,8 @@ TEST_F(CAmRouterTest,simpleRoute4Domains2Routes) ASSERT_EQ(E_OK, pRouter.getRoute(false,sourceID,sinkID,listRoutes)); ASSERT_EQ(static_cast(2), listRoutes.size()); - ASSERT_TRUE(pCF.compareRoute(compareRoute,listRoutes[0])); - ASSERT_TRUE(pCF.compareRoute(compareRoute1,listRoutes[1])); + ASSERT_TRUE(pCF.compareRoute(compareRoute,listRoutes[0]) || pCF.compareRoute(compareRoute,listRoutes[1]) ); + ASSERT_TRUE(pCF.compareRoute(compareRoute1,listRoutes[1]) || pCF.compareRoute(compareRoute1,listRoutes[0]) ); } //test that checks 3 domains, one sink one source but the connectionformat of third domains do not fit. -- cgit v1.2.1