diff options
author | christian mueller <christian.ei.mueller@bmw.de> | 2011-12-29 17:07:38 +0100 |
---|---|---|
committer | christian mueller <christian.ei.mueller@bmw.de> | 2011-12-30 03:08:00 +0100 |
commit | 93d7610b460c6212a3098a3eccb127fd45ada345 (patch) | |
tree | 0e00544ede90f06dd9933c003c4b7cc72f964af3 /PluginRoutingInterfaceAsync/test/testRoutingInterfaceAsyncInterrupt.cpp | |
parent | b7e748007bbe0b16fa8a8a089c6cc8fe43bc7aac (diff) | |
download | audiomanager-93d7610b460c6212a3098a3eccb127fd45ada345.tar.gz |
*added versioning support automatically out of git
*added commandline parser
*changed DLT_CONTEXT for AudioManager to AudioManager
*added signalhandler
*TODO: make signalhandler not only call but correctly rundown the daemon
Diffstat (limited to 'PluginRoutingInterfaceAsync/test/testRoutingInterfaceAsyncInterrupt.cpp')
-rw-r--r-- | PluginRoutingInterfaceAsync/test/testRoutingInterfaceAsyncInterrupt.cpp | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/PluginRoutingInterfaceAsync/test/testRoutingInterfaceAsyncInterrupt.cpp b/PluginRoutingInterfaceAsync/test/testRoutingInterfaceAsyncInterrupt.cpp new file mode 100644 index 0000000..a04bc6d --- /dev/null +++ b/PluginRoutingInterfaceAsync/test/testRoutingInterfaceAsyncInterrupt.cpp @@ -0,0 +1,148 @@ +/* + * testRoutingInterfaceAsync.cpp + * + * Created on: Dec 27, 2011 + * Author: christian + */ + +#define INTERRUPT_TEST 1 + +#include "testRoutingInterfaceAsync.h" +#include "config.h" + + +using namespace am; +using namespace testing; + + +DLT_DECLARE_CONTEXT(DLT_CONTEXT) + + +std::vector<std::string> testRoutingInterfaceAsync::pListRoutingPluginDirs=returnListPlugins(); +am_domainID_t testRoutingInterfaceAsync::mDomainIDCount=0; +RoutingSender testRoutingInterfaceAsync::pRoutingSender=RoutingSender(pListRoutingPluginDirs); + +testRoutingInterfaceAsync::testRoutingInterfaceAsync() + :pSocketHandler(), + pReceiveInterface(), + ptimerCallback(this, &testRoutingInterfaceAsync::timerCallback) +{ +} + +testRoutingInterfaceAsync::~testRoutingInterfaceAsync() +{ +} + +void testRoutingInterfaceAsync::SetUp() +{ + DLT_REGISTER_APP("DPtest","RoutingInterfacetest"); + DLT_REGISTER_CONTEXT(DLT_CONTEXT,"Main","Main Context"); + DLT_LOG(DLT_CONTEXT,DLT_LOG_INFO, DLT_STRING("RoutingSendInterface Test started ")); + + std::vector<int> domainIDs; + domainIDs.push_back(0); + domainIDs.push_back(1); + + EXPECT_CALL(pReceiveInterface,getSocketHandler(_)).WillOnce(DoAll(SetArgReferee<0>(&pSocketHandler),Return(E_OK))); + EXPECT_CALL(pReceiveInterface,registerDomain(_,_)).WillRepeatedly(Invoke(testRoutingInterfaceAsync::handleDomainRegister)); + EXPECT_CALL(pReceiveInterface,registerSource(_,_)).WillRepeatedly(Invoke(testRoutingInterfaceAsync::handleSourceRegister)); + EXPECT_CALL(pReceiveInterface,registerSink(_,_)).WillRepeatedly(Invoke(testRoutingInterfaceAsync::handleSinkRegister)); + + pRoutingSender.startupRoutingInterface(&pReceiveInterface); + pRoutingSender.routingInterfacesReady(); + + timespec t; + t.tv_nsec=0; + t.tv_sec=4; + + sh_timerHandle_t handle; + + shTimerCallBack *buf=&ptimerCallback; + //lets use a timeout so the test will finish + pSocketHandler.addTimer(t,buf,handle,(void*)NULL); +} + +std::vector<std::string> am::testRoutingInterfaceAsync::returnListPlugins() +{ + std::vector<std::string> list; + list.push_back(std::string(DEFAULT_PLUGIN_ROUTING_DIR)); + return (list); +} + +am_Error_e am::testRoutingInterfaceAsync::handleSourceRegister(const am_Source_s & sourceData, am_sourceID_t & sourceID) +{ + sourceID=sourceData.sourceID; + pRoutingSender.addSourceLookup(sourceData); + return (E_OK); +} + +am_Error_e am::testRoutingInterfaceAsync::handleSinkRegister(const am_Sink_s & sinkData, am_sinkID_t & sinkID) +{ + sinkID=sinkData.sinkID; + pRoutingSender.addSinkLookup(sinkData); + return(E_OK); +} + +am_Error_e am::testRoutingInterfaceAsync::handleDomainRegister(const am_Domain_s & domainData, am_domainID_t & domainID) +{ + am_Domain_s domain=domainData; + domainID=mDomainIDCount++; + domain.domainID=domainID; + pRoutingSender.addDomainLookup(domain); + return (E_OK); +} + +void am::testRoutingInterfaceAsync::timerCallback(sh_timerHandle_t handle, void *userData) +{ + pSocketHandler.stop_listening(); +} + +void testRoutingInterfaceAsync::TearDown() +{ + DLT_UNREGISTER_CONTEXT(DLT_CONTEXT); +} + +std::string DBUSCOMMAND = "dbus-send --session --print-reply --dest=org.genivi.test /org/genivi/test org.genivi.test."; + + + +TEST_F(testRoutingInterfaceAsync,hookInterruptStatusChange) +{ + am_sourceID_t sourceID=2; + EXPECT_CALL(pReceiveInterface,hookInterruptStatusChange(sourceID,_)).Times(1); + system((DBUSCOMMAND + std::string("InterruptStatusChange int16:2")).c_str()); + pSocketHandler.start_listenting(); +} + +TEST_F(testRoutingInterfaceAsync,hookSourceAvailablityStatusChange) +{ + am_sourceID_t sourceID=2; + EXPECT_CALL(pReceiveInterface,hookSourceAvailablityStatusChange(sourceID,_)).Times(1); + system((DBUSCOMMAND + std::string("SourceAvailablityStatusChange int16:2")).c_str()); + pSocketHandler.start_listenting(); +} + +TEST_F(testRoutingInterfaceAsync,hookSinkAvailablityStatusChange) +{ + am_sinkID_t sinkID=2; + EXPECT_CALL(pReceiveInterface,hookSinkAvailablityStatusChange(sinkID,_)).Times(1); + system((DBUSCOMMAND + std::string("SinkAvailablityStatusChange int16:2")).c_str()); + pSocketHandler.start_listenting(); +} + +TEST_F(testRoutingInterfaceAsync,hookTimingInformationChanged) +{ + am_connectionID_t connectionID=4; + am_timeSync_t delay=35; + EXPECT_CALL(pReceiveInterface,hookTimingInformationChanged(connectionID,delay)).Times(1); + system((DBUSCOMMAND + std::string("timingChanged int16:4 int16:35")).c_str()); + pSocketHandler.start_listenting(); +} + +int main(int argc, char **argv) +{ + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} + + |