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