diff options
Diffstat (limited to 'tests/basic')
-rw-r--r-- | tests/basic/keymap.c | 1 | ||||
-rw-r--r-- | tests/basic/test_keypress.cpp | 208 |
2 files changed, 104 insertions, 105 deletions
diff --git a/tests/basic/keymap.c b/tests/basic/keymap.c index 951ce8e0cc..2b5747abb7 100644 --- a/tests/basic/keymap.c +++ b/tests/basic/keymap.c @@ -43,4 +43,3 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { } return MACRO_NONE; }; - diff --git a/tests/basic/test_keypress.cpp b/tests/basic/test_keypress.cpp index 551458a0d9..ecd6e98e44 100644 --- a/tests/basic/test_keypress.cpp +++ b/tests/basic/test_keypress.cpp @@ -17,8 +17,8 @@ #include "test_common.hpp" using testing::_; -using testing::Return; using testing::InSequence; +using testing::Return; class KeyPress : public TestFixture {}; @@ -125,116 +125,116 @@ TEST_F(KeyPress, RightShiftLeftControlAndCharWithTheSameKey) { } TEST_F(KeyPress, PressPlusEqualReleaseBeforePress) { - TestDriver driver; - InSequence s; - - press_key(1, 1); // KC_PLUS - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT, KC_EQL))); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - release_key(1, 1); // KC_PLUS - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - press_key(0, 1); // KC_EQL - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_EQL))); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - release_key(0, 1); // KC_EQL - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); + TestDriver driver; + InSequence s; + + press_key(1, 1); // KC_PLUS + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT, KC_EQL))); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + release_key(1, 1); // KC_PLUS + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + press_key(0, 1); // KC_EQL + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_EQL))); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + release_key(0, 1); // KC_EQL + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); } TEST_F(KeyPress, PressPlusEqualDontReleaseBeforePress) { - TestDriver driver; - InSequence s; - - press_key(1, 1); // KC_PLUS - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT, KC_EQL))); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - press_key(0, 1); // KC_EQL - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())); - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_EQL))); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - release_key(1, 1); //KC_PLS - // BUG: Should really still return KC_EQL, but this is fine too - // It's also called twice for some reason - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).Times(2); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - release_key(0, 1); // KC_EQL - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); + TestDriver driver; + InSequence s; + + press_key(1, 1); // KC_PLUS + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT, KC_EQL))); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + press_key(0, 1); // KC_EQL + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_EQL))); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + release_key(1, 1); // KC_PLS + // BUG: Should really still return KC_EQL, but this is fine too + // It's also called twice for some reason + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).Times(2); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + release_key(0, 1); // KC_EQL + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); } TEST_F(KeyPress, PressEqualPlusReleaseBeforePress) { - TestDriver driver; - InSequence s; - - press_key(0, 1); // KC_EQL - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_EQL))); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - release_key(0, 1); // KQ_EQL - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - press_key(1, 1); // KC_PLUS - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT, KC_EQL))); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - release_key(1, 1); // KC_PLUS - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); + TestDriver driver; + InSequence s; + + press_key(0, 1); // KC_EQL + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_EQL))); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + release_key(0, 1); // KQ_EQL + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + press_key(1, 1); // KC_PLUS + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT, KC_EQL))); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + release_key(1, 1); // KC_PLUS + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); } TEST_F(KeyPress, PressEqualPlusDontReleaseBeforePress) { - TestDriver driver; - InSequence s; - - press_key(0, 1); // KC_EQL - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_EQL))); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - press_key(1, 1); // KC_PLUS - // BUG: The sequence is a bit strange, but it works, the end result is that - // KC_PLUS is sent - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT, KC_EQL))); - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT, KC_EQL))); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - release_key(0, 1); //KC_EQL - // I guess it's fine to still report shift here - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); - - release_key(1, 1); // KC_PLUS - // This report is not needed - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); - EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())); - run_one_scan_loop(); - testing::Mock::VerifyAndClearExpectations(&driver); + TestDriver driver; + InSequence s; + + press_key(0, 1); // KC_EQL + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_EQL))); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + press_key(1, 1); // KC_PLUS + // BUG: The sequence is a bit strange, but it works, the end result is that + // KC_PLUS is sent + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT, KC_EQL))); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT, KC_EQL))); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + release_key(0, 1); // KC_EQL + // I guess it's fine to still report shift here + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + release_key(1, 1); // KC_PLUS + // This report is not needed + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); } |