23
23
#include < gmock/gmock.h>
24
24
#include < gtest/gtest.h>
25
25
#include < interfaces/IHdmiCecSink.h>
26
- // Used to change the power state for onpowermodechanged event
26
+ // Used to change the power state for onpowermodechanged event
27
27
#include < interfaces/IPowerManager.h>
28
28
29
29
#define EVNT_TIMEOUT (5000 )
@@ -48,9 +48,7 @@ namespace {
48
48
static void removeFile (const char * fileName)
49
49
{
50
50
// Use sudo for protected files
51
- if (strcmp (fileName, " /etc/device.properties" ) == 0 ||
52
- strcmp (fileName, " /opt/persistent/ds/cecData_2.json" ) == 0 ||
53
- strcmp (fileName, " /opt/uimgr_settings.bin" ) == 0 ) {
51
+ if (strcmp (fileName, " /etc/device.properties" ) == 0 || strcmp (fileName, " /opt/persistent/ds/cecData_2.json" ) == 0 || strcmp (fileName, " /opt/uimgr_settings.bin" ) == 0 ) {
54
52
char cmd[256 ];
55
53
snprintf (cmd, sizeof (cmd), " sudo rm -f %s" , fileName);
56
54
int ret = system (cmd);
@@ -1839,6 +1837,29 @@ TEST_F(HdmiCecSink_L2Test, GetDeviceList_COMRPC)
1839
1837
}
1840
1838
}
1841
1839
1840
+ TEST_F (HdmiCecSink_L2Test, Hdmihotplug_COMRPC)
1841
+ {
1842
+ if (CreateHdmiCecSinkInterfaceObject () != Core::ERROR_NONE) {
1843
+ TEST_LOG (" Invalid HdmiCecSink_Client" );
1844
+ } else {
1845
+ EXPECT_TRUE (m_controller_cecSink != nullptr );
1846
+ if (m_controller_cecSink) {
1847
+ EXPECT_TRUE (m_cecSinkPlugin != nullptr );
1848
+ if (m_cecSinkPlugin) {
1849
+
1850
+ IARM_Bus_DSMgr_EventData_t eventData;
1851
+ eventData.data .hdmi_in_connect .port = dsHDMI_IN_PORT_1;
1852
+ eventData.data .hdmi_in_connect .isPortConnected = true ;
1853
+
1854
+ dsHdmiEventHandler (IARM_BUS_DSMGR_NAME, IARM_BUS_DSMGR_EVENT_HDMI_IN_HOTPLUG, &eventData, 0 );
1855
+
1856
+ m_cecSinkPlugin->Release ();
1857
+ }
1858
+ m_controller_cecSink->Release ();
1859
+ }
1860
+ }
1861
+ }
1862
+
1842
1863
// JSONRPC test fixtures
1843
1864
TEST_F (HdmiCecSink_L2Test, Set_And_Get_OSDName_JSONRPC)
1844
1865
{
@@ -2727,7 +2748,7 @@ TEST_F(HdmiCecSink_L2Test, InjectInactiveSourceFramesAndVerifyEvents)
2727
2748
jsonrpc.Unsubscribe (EVNT_TIMEOUT, _T (" onInActiveSource" ));
2728
2749
}
2729
2750
2730
- // InActiveSource
2751
+ // InActiveSource
2731
2752
TEST_F (HdmiCecSink_L2Test, InjectInactiveSourceBroadcastIgnoreCase)
2732
2753
{
2733
2754
// Inject <Inactive Source>
@@ -2976,7 +2997,7 @@ TEST_F(HdmiCecSink_L2Test, InjectFeatureAbortAndVerifyEvent)
2976
2997
jsonrpc.Unsubscribe (EVNT_TIMEOUT, _T (" reportFeatureAbortEvent" ));
2977
2998
}
2978
2999
2979
- // Feature Abort
3000
+ // Feature Abort
2980
3001
TEST_F (HdmiCecSink_L2Test, InjectFeatureAbortFrameBroadcastIgnoreTest)
2981
3002
{
2982
3003
ASSERT_FALSE (listeners.empty ()) << " No FrameListener was captured." ;
@@ -3163,11 +3184,11 @@ TEST_F(HdmiCecSink_L2Test, InjectGivePhysicalAddressFrame)
3163
3184
TEST_F (HdmiCecSink_L2Test, InjectGivePhysicalAddressFrameException)
3164
3185
{
3165
3186
EXPECT_CALL (*p_connectionMock, sendTo (::testing::_, ::testing::_, ::testing::_))
3166
- .WillOnce (::testing::Invoke (
3167
- [&](const LogicalAddress&, const CECFrame&, int ) {
3168
- throw std::runtime_error (" Simulated sendTo failure" );
3169
- }))
3170
- .WillRepeatedly (::testing::Return ());
3187
+ .WillOnce (::testing::Invoke (
3188
+ [&](const LogicalAddress&, const CECFrame&, int ) {
3189
+ throw std::runtime_error (" Simulated sendTo failure" );
3190
+ }))
3191
+ .WillRepeatedly (::testing::Return ());
3171
3192
3172
3193
uint8_t buffer[] = { 0x40 , 0x83 }; // From device 4 to TV (0)
3173
3194
CECFrame frame (buffer, sizeof (buffer));
@@ -3177,7 +3198,6 @@ TEST_F(HdmiCecSink_L2Test, InjectGivePhysicalAddressFrameException)
3177
3198
}
3178
3199
}
3179
3200
3180
-
3181
3201
// GiveDeviceVendorID (0x8C)
3182
3202
TEST_F (HdmiCecSink_L2Test, InjectGiveDeviceVendorIDFrame)
3183
3203
{
@@ -3478,6 +3498,13 @@ TEST_F(HdmiCecSink_L2Test, InjectDeviceRemovedAndVerifyEvent)
3478
3498
EXPECT_CALL (async_handler, onDeviceRemoved (::testing::_))
3479
3499
.WillOnce (Invoke (this , &HdmiCecSink_L2Test::onDeviceRemoved));
3480
3500
3501
+ uint8_t addBuffer[] = { 0x4F , 0x84 , 0x10 , 0x00 , 0x04 };
3502
+ CECFrame addFrame (addBuffer, sizeof (addBuffer));
3503
+ for (auto * listener : listeners) {
3504
+ if (listener)
3505
+ listener->notify (addFrame);
3506
+ }
3507
+
3481
3508
// Now simulate hotplug disconnect for port 1
3482
3509
IARM_Bus_DSMgr_EventData_t eventData;
3483
3510
eventData.data .hdmi_in_connect .port = dsHDMI_IN_PORT_1;
@@ -3749,12 +3776,11 @@ TEST_F(HdmiCecSink_L2Test_STANDBY, InjectWakeupFromStandbyFrameAndVerifyEvent)
3749
3776
jsonrpc.Unsubscribe (EVNT_TIMEOUT, _T (" onWakeupFromStandby" ));
3750
3777
}
3751
3778
3752
-
3753
3779
TEST_F (HdmiCecSink_L2Test_STANDBY, TriggerOnPowerModeChangeEvent_ON)
3754
3780
{
3755
3781
Core::ProxyType<RPC::InvokeServerType<1 , 0 , 4 >> mEngine_PowerManager ;
3756
3782
Core::ProxyType<RPC::CommunicatorClient> mClient_PowerManager ;
3757
- PluginHost::IShell * mController_PowerManager ;
3783
+ PluginHost::IShell* mController_PowerManager ;
3758
3784
3759
3785
TEST_LOG (" Creating mEngine_PowerManager" );
3760
3786
mEngine_PowerManager = Core::ProxyType<RPC::InvokeServerType<1 , 0 , 4 >>::Create ();
@@ -3765,23 +3791,18 @@ TEST_F(HdmiCecSink_L2Test_STANDBY, TriggerOnPowerModeChangeEvent_ON)
3765
3791
mEngine_PowerManager ->Announcements (mClient_PowerManager ->Announcement ());
3766
3792
#endif
3767
3793
3768
- if (!mClient_PowerManager .IsValid ())
3769
- {
3794
+ if (!mClient_PowerManager .IsValid ()) {
3770
3795
TEST_LOG (" Invalid mClient_PowerManager" );
3771
- }
3772
- else
3773
- {
3796
+ } else {
3774
3797
mController_PowerManager = mClient_PowerManager ->Open <PluginHost::IShell>(_T (" org.rdk.PowerManager" ), ~0 , 3000 );
3775
- if (mController_PowerManager )
3776
- {
3798
+ if (mController_PowerManager ) {
3777
3799
auto PowerManagerPlugin = mController_PowerManager ->QueryInterface <Exchange::IPowerManager>();
3778
3800
3779
- if (PowerManagerPlugin)
3780
- {
3801
+ if (PowerManagerPlugin) {
3781
3802
int keyCode = 0 ;
3782
3803
3783
3804
uint32_t clientId = 0 ;
3784
- uint32_t status = PowerManagerPlugin->AddPowerModePreChangeClient (" l2-test-client" , clientId);
3805
+ uint32_t status = PowerManagerPlugin->AddPowerModePreChangeClient (" l2-test-client" , clientId);
3785
3806
EXPECT_EQ (status, Core::ERROR_NONE);
3786
3807
3787
3808
EXPECT_CALL (*p_powerManagerHalMock, PLAT_API_SetPowerState (::testing::_))
@@ -3798,15 +3819,11 @@ TEST_F(HdmiCecSink_L2Test_STANDBY, TriggerOnPowerModeChangeEvent_ON)
3798
3819
std::this_thread::sleep_for (std::chrono::milliseconds (1500 ));
3799
3820
3800
3821
PowerManagerPlugin->Release ();
3801
- }
3802
- else
3803
- {
3822
+ } else {
3804
3823
TEST_LOG (" PowerManagerPlugin is NULL" );
3805
3824
}
3806
3825
mController_PowerManager ->Release ();
3807
- }
3808
- else
3809
- {
3826
+ } else {
3810
3827
TEST_LOG (" mController_PowerManager is NULL" );
3811
3828
}
3812
3829
}
@@ -3816,7 +3833,7 @@ TEST_F(HdmiCecSink_L2Test, RaisePowerModeChangedEvent_OFF)
3816
3833
{
3817
3834
Core::ProxyType<RPC::InvokeServerType<1 , 0 , 4 >> mEngine_PowerManager ;
3818
3835
Core::ProxyType<RPC::CommunicatorClient> mClient_PowerManager ;
3819
- PluginHost::IShell * mController_PowerManager ;
3836
+ PluginHost::IShell* mController_PowerManager ;
3820
3837
3821
3838
TEST_LOG (" Creating mEngine_PowerManager" );
3822
3839
mEngine_PowerManager = Core::ProxyType<RPC::InvokeServerType<1 , 0 , 4 >>::Create ();
@@ -3827,23 +3844,18 @@ TEST_F(HdmiCecSink_L2Test, RaisePowerModeChangedEvent_OFF)
3827
3844
mEngine_PowerManager ->Announcements (mClient_PowerManager ->Announcement ());
3828
3845
#endif
3829
3846
3830
- if (!mClient_PowerManager .IsValid ())
3831
- {
3847
+ if (!mClient_PowerManager .IsValid ()) {
3832
3848
TEST_LOG (" Invalid mClient_PowerManager" );
3833
- }
3834
- else
3835
- {
3849
+ } else {
3836
3850
mController_PowerManager = mClient_PowerManager ->Open <PluginHost::IShell>(_T (" org.rdk.PowerManager" ), ~0 , 3000 );
3837
- if (mController_PowerManager )
3838
- {
3851
+ if (mController_PowerManager ) {
3839
3852
auto PowerManagerPlugin = mController_PowerManager ->QueryInterface <Exchange::IPowerManager>();
3840
3853
3841
- if (PowerManagerPlugin)
3842
- {
3854
+ if (PowerManagerPlugin) {
3843
3855
int keyCode = 0 ;
3844
3856
3845
3857
uint32_t clientId = 0 ;
3846
- uint32_t status = PowerManagerPlugin->AddPowerModePreChangeClient (" l2-test-client" , clientId);
3858
+ uint32_t status = PowerManagerPlugin->AddPowerModePreChangeClient (" l2-test-client" , clientId);
3847
3859
EXPECT_EQ (status, Core::ERROR_NONE);
3848
3860
3849
3861
EXPECT_CALL (*p_powerManagerHalMock, PLAT_API_SetPowerState (::testing::_))
@@ -3860,15 +3872,11 @@ TEST_F(HdmiCecSink_L2Test, RaisePowerModeChangedEvent_OFF)
3860
3872
std::this_thread::sleep_for (std::chrono::milliseconds (1500 ));
3861
3873
3862
3874
PowerManagerPlugin->Release ();
3863
- }
3864
- else
3865
- {
3875
+ } else {
3866
3876
TEST_LOG (" PowerManagerPlugin is NULL" );
3867
3877
}
3868
3878
mController_PowerManager ->Release ();
3869
- }
3870
- else
3871
- {
3879
+ } else {
3872
3880
TEST_LOG (" mController_PowerManager is NULL" );
3873
3881
}
3874
3882
}
0 commit comments