Improve:Hal test tool.
This commit is contained in:
parent
0de968d42e
commit
9fe836864e
|
@ -100,6 +100,9 @@ public:
|
|||
bool SetKeyClick(const unsigned int &pressingTimeMs = 200);
|
||||
MOCK_METHOD3(KeyEventTriggerTrace, StatusCode(const std::string &, const KeyEvent &, const unsigned int &));
|
||||
|
||||
private:
|
||||
void KeyEventHappendOnce(std::shared_ptr<KeyControlMock> &mock, const unsigned int &pressingTimeMs);
|
||||
|
||||
private:
|
||||
std::mutex mMutex;
|
||||
};
|
||||
|
|
|
@ -82,6 +82,7 @@ bool KeyControlMock::SetKeyClick(const unsigned int &pressingTimeMs)
|
|||
{
|
||||
if (mMutex.try_lock()) {
|
||||
auto keyClickThread = [=](std::shared_ptr<KeyControlMock> key) {
|
||||
KeyEventHappendOnce(key, pressingTimeMs);
|
||||
key->KeyHalEventTrigger(KeyHalEvent::PRESSING);
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(pressingTimeMs));
|
||||
key->KeyHalEventTrigger(KeyHalEvent::NOT_PRESSING);
|
||||
|
@ -96,6 +97,26 @@ bool KeyControlMock::SetKeyClick(const unsigned int &pressingTimeMs)
|
|||
LogWarning("SetKeyClick failed, becase key was lock.\n");
|
||||
return false;
|
||||
}
|
||||
void KeyControlMock::KeyEventHappendOnce(std::shared_ptr<KeyControlMock> &mock, const unsigned int &pressingTimeMs)
|
||||
{
|
||||
EXPECT_CALL(*mock.get(), KeyEventTriggerTrace(_, _, _))
|
||||
.WillRepeatedly(DoAll(Return(CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION))));
|
||||
constexpr int CLICK_EVENT_HAPPENED_ONLY_ONCE = 1;
|
||||
constexpr int HOLD_UP_EVENT_HAPPENED_ONLY_ONCE = 1;
|
||||
if (KEY_ACTION_SHORT_CLICK <= pressingTimeMs && pressingTimeMs < KEY_ACTION_HOLD_DWON) {
|
||||
EXPECT_CALL(*mock.get(), KeyEventTriggerTrace(mock->GetKeyName(), KeyEvent::SHORT_CLICK, _))
|
||||
.Times(CLICK_EVENT_HAPPENED_ONLY_ONCE)
|
||||
.WillRepeatedly(DoAll(Return(CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION))));
|
||||
}
|
||||
if (KEY_ACTION_HOLD_DWON <= pressingTimeMs) {
|
||||
EXPECT_CALL(*mock.get(), KeyEventTriggerTrace(mock->GetKeyName(), KeyEvent::HOLD_DOWN, _))
|
||||
.Times(AtLeast(1))
|
||||
.WillRepeatedly(DoAll(Return(CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION))));
|
||||
EXPECT_CALL(*mock.get(), KeyEventTriggerTrace(mock->GetKeyName(), KeyEvent::HOLD_UP, _))
|
||||
.Times(HOLD_UP_EVENT_HAPPENED_ONLY_ONCE)
|
||||
.WillOnce(DoAll(Return(CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION))));
|
||||
}
|
||||
}
|
||||
void HalTestTool::Init(void)
|
||||
{
|
||||
mHalMock = std::make_shared<HalCppMock>();
|
||||
|
@ -129,11 +150,13 @@ void HalTestTool::SetKeyClick(const std::string &keyName, const unsigned int &pr
|
|||
return;
|
||||
}
|
||||
if (key->SetKeyClick(pressingTimeMs)) {
|
||||
KeyEventHappendOnce(key, pressingTimeMs);
|
||||
// KeyEventHappendOnce(key, pressingTimeMs);
|
||||
}
|
||||
}
|
||||
void HalTestTool::KeyEventHappendOnce(std::shared_ptr<KeyControlMock> &mock, const unsigned int &pressingTimeMs)
|
||||
{
|
||||
EXPECT_CALL(*mock.get(), KeyEventTriggerTrace(_, _, _))
|
||||
.WillRepeatedly(DoAll(Return(CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION))));
|
||||
constexpr int CLICK_EVENT_HAPPENED_ONLY_ONCE = 1;
|
||||
if (KEY_ACTION_SHORT_CLICK <= pressingTimeMs && pressingTimeMs < KEY_ACTION_HOLD_DWON) {
|
||||
EXPECT_CALL(*mock.get(), KeyEventTriggerTrace(mock->GetKeyName(), KeyEvent::SHORT_CLICK, _))
|
||||
|
@ -182,8 +205,8 @@ void HalTestTool::InitAllKeysMock(std::map<std::string, std::shared_ptr<VKeyHal>
|
|||
}
|
||||
void HalTestTool::InitKeysMock(std::shared_ptr<KeyControlMock> &mock)
|
||||
{
|
||||
EXPECT_CALL(*mock.get(), KeyEventTriggerTrace(_, _, _))
|
||||
.WillRepeatedly(DoAll(Return(CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION))));
|
||||
constexpr int KEY_SHOULD_NOT_TRIGGER_WHEN_NOBODY_SET_KEY_RESULT = 0;
|
||||
EXPECT_CALL(*mock.get(), KeyEventTriggerTrace(_, _, _)).Times(KEY_SHOULD_NOT_TRIGGER_WHEN_NOBODY_SET_KEY_RESULT);
|
||||
}
|
||||
void HalTestTool::HalMockInit(std::shared_ptr<HalCppMock> &mock)
|
||||
{
|
||||
|
|
|
@ -111,6 +111,8 @@ TEST_F(DeviceManagerTest, INTEGRATION_DeviceManager_EXAMPLE_AUTO_SetKeyMonitor)
|
|||
IDeviceManager::GetInstance()->SetAllKeysMonitor(monitor);
|
||||
SetKeyClick(KEY_TEST, 1000); // Simulate pressing a button.
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(2000));
|
||||
SetKeyClick(KEY_TEST, 1000); // Simulate pressing a button.
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(2000));
|
||||
IDeviceManager::GetInstance()->UnInit();
|
||||
}
|
||||
} // namespace DeviceManagerTest
|
Loading…
Reference in New Issue
Block a user