From 99c3edf827a16d4bdc1c40a5df7c18bf8626afa3 Mon Sep 17 00:00:00 2001 From: Aleksandar Donchev Date: Mon, 6 Mar 2017 17:10:32 +0100 Subject: CAmSocketHandler - usage of std::function instead of function pointers, code cleanup and minior optimizations. Signed-off-by: Christian Linke Change-Id: I8c2c2c436ac9abc37c76a12245c731f327cab0e5 --- .../AmSocketHandlerTest/CAmSocketHandlerTest.h | 92 +++++++++++++++++++--- 1 file changed, 80 insertions(+), 12 deletions(-) (limited to 'AudioManagerUtilities/test/AmSocketHandlerTest/CAmSocketHandlerTest.h') diff --git a/AudioManagerUtilities/test/AmSocketHandlerTest/CAmSocketHandlerTest.h b/AudioManagerUtilities/test/AmSocketHandlerTest/CAmSocketHandlerTest.h index 95e5446..b7d2a09 100644 --- a/AudioManagerUtilities/test/AmSocketHandlerTest/CAmSocketHandlerTest.h +++ b/AudioManagerUtilities/test/AmSocketHandlerTest/CAmSocketHandlerTest.h @@ -25,14 +25,52 @@ #define WITH_DLT +#include +#include #include "gtest/gtest.h" +#include "gmock/gmock.h" #include #include "CAmSocketHandler.h" +#undef ENABLED_SOCKETHANDLER_TEST_OUTPUT +#undef ENABLED_TIMERS_TEST_OUTPUT +#define TIMERS_CB_TOLERANCE 10.f + namespace am { + class IAmTimerCb + { + public: + virtual void timerCallback(sh_timerHandle_t handle, void * userData)=0; + }; + + class IAmSocketHandlerCb + { + public: + virtual void receiveData(const pollfd pollfd, const sh_pollHandle_t handle, void* userData)=0; + virtual bool dispatchData(const sh_pollHandle_t handle, void* userData)=0; + virtual bool check(const sh_pollHandle_t handle, void* userData)=0; + }; -class CAmSamplePlugin + class MockIAmTimerCb : public IAmTimerCb + { + public: + MOCK_CONST_METHOD2(timerCallback, + void(sh_timerHandle_t handle, void *userData)); + }; + + class MockSocketHandlerCb : public IAmSocketHandlerCb + { + public: + MOCK_CONST_METHOD3(receiveData, + void(const pollfd pollfd, const sh_pollHandle_t handle, void* userData)); + MOCK_CONST_METHOD2(dispatchData, + void(const sh_pollHandle_t handle, void* userData)); + MOCK_CONST_METHOD2(check, + void(const sh_pollHandle_t handle, void* userData)); + }; + +class CAmSamplePlugin : public MockSocketHandlerCb { public: enum sockType_e @@ -52,26 +90,56 @@ public: TAmShPollFired receiveFiredCB; TAmShPollDispatch sampleDispatchCB; TAmShPollCheck sampleCheckCB; + private: CAmSocketHandler *mSocketHandler; sh_pollHandle_t mConnecthandle, mReceiveHandle; std::queue msgList; }; -class CAmTimerCb +class CAmTimerSockethandlerController: public MockIAmTimerCb +{ + CAmSocketHandler *mpSocketHandler; + timespec mUpdateTimeout; +public: + explicit CAmTimerSockethandlerController(CAmSocketHandler *SocketHandler, const timespec &timeout); + virtual ~CAmTimerSockethandlerController(); + + void timerCallback(sh_timerHandle_t handle, void * userData); + + TAmShTimerCallBack pTimerCallback; +}; + +class CAmTimer: public MockIAmTimerCb { + CAmSocketHandler *mpSocketHandler; + timespec mUpdateTimeout; + int32_t mRepeats; public: - CAmTimerCb(CAmSocketHandler *SocketHandler); - virtual ~CAmTimerCb(); - void timer1Callback(sh_timerHandle_t handle, void * userData); - void timer2Callback(sh_timerHandle_t handle, void * userData); - void timer3Callback(sh_timerHandle_t handle, void * userData); - void timer4Callback(sh_timerHandle_t handle, void * userData); - TAmShTimerCallBack pTimer1Callback; - TAmShTimerCallBack pTimer2Callback; - TAmShTimerCallBack pTimer3Callback; - TAmShTimerCallBack pTimer4Callback; + explicit CAmTimer(CAmSocketHandler *SocketHandler, const timespec &timeout, const int32_t repeats = 0u); + virtual ~CAmTimer(); + + void timerCallback(sh_timerHandle_t handle, void * userData); + + TAmShTimerCallBack pTimerCallback; +}; + +class CAmTimerMeasurment: public MockIAmTimerCb +{ CAmSocketHandler *mSocketHandler; + timespec mUpdateTimeout; + std::chrono::time_point mUpdateTimePoint; + std::chrono::time_point mLastInvocationTime; + std::chrono::duration> mExpected; + int32_t mRepeats; + void * mpUserData; + std::string mDebugText; +public: + explicit CAmTimerMeasurment(CAmSocketHandler *SocketHandler, const timespec &timeout, const std::string & label, const int32_t repeats = 0u, void * userData = NULL); + virtual ~CAmTimerMeasurment(); + + void timerCallback(sh_timerHandle_t handle, void * userData); + TAmShTimerCallBack pTimerCallback; }; class CAmSocketHandlerTest: public ::testing::Test -- cgit v1.2.1