diff options
| author | zvecr <[email protected]> | 2022-02-25 23:45:40 +0000 | 
|---|---|---|
| committer | zvecr <[email protected]> | 2022-02-25 23:45:40 +0000 | 
| commit | e7931289918221081cbe2a7ea5df27a5d86324db (patch) | |
| tree | 0b06145520f8aaf5ff5cb928aa5176fc2dd23619 /tests/basic/test_macro.cpp | |
| parent | c0ee3d2c79388187883b1b1b1d1a0b6842acf741 (diff) | |
| parent | cf31355f08dca311a013168eb3eb995e2fc6a3d1 (diff) | |
| download | qmk_firmware-e7931289918221081cbe2a7ea5df27a5d86324db.tar.gz qmk_firmware-e7931289918221081cbe2a7ea5df27a5d86324db.zip | |
Merge remote-tracking branch 'origin/develop'0.16.0
Diffstat (limited to 'tests/basic/test_macro.cpp')
| -rw-r--r-- | tests/basic/test_macro.cpp | 88 | 
1 files changed, 0 insertions, 88 deletions
| diff --git a/tests/basic/test_macro.cpp b/tests/basic/test_macro.cpp deleted file mode 100644 index ae2f3b32e3..0000000000 --- a/tests/basic/test_macro.cpp +++ /dev/null @@ -1,88 +0,0 @@ -/* Copyright 2017 Fred Sundvik - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program.  If not, see <http://www.gnu.org/licenses/>. - */ - -#include "test_common.hpp" -#include "time.h" - -using testing::InSequence; -using testing::InvokeWithoutArgs; - -class Macro : public TestFixture {}; - -#define AT_TIME(t) WillOnce(InvokeWithoutArgs([current_time]() { EXPECT_EQ(timer_elapsed32(current_time), t); })) - -extern "C" const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { -    if (record->event.pressed) { -        switch (id) { -            case 0: -                return MACRO(D(LSFT), T(H), U(LSFT), T(E), T(L), T(L), T(O), T(SPACE), W(100), D(LSFT), T(W), U(LSFT), I(10), T(O), T(R), T(L), T(D), D(LSFT), T(1), U(LSFT), END); -        } -    } -    return MACRO_NONE; -}; - -TEST_F(Macro, PlayASimpleMacro) { -    TestDriver driver; -    InSequence s; -    auto       key_macro = KeymapKey(0, 8, 0, M(0)); - -    set_keymap({key_macro}); - -    key_macro.press(); - -    uint32_t current_time = timer_read32(); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT))).AT_TIME(0); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT, KC_H))).AT_TIME(0); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT))).AT_TIME(0); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(0); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_E))).AT_TIME(0); -    // The macro system could actually skip these empty keyboard reports -    // it should be enough to just send a report with the next key down -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(0); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_L))).AT_TIME(0); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(0); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_L))).AT_TIME(0); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(0); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_O))).AT_TIME(0); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(0); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_SPACE))).AT_TIME(0); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(0); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT))).AT_TIME(100); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT, KC_W))).AT_TIME(100); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT))).AT_TIME(100); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(100); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_O))) -        // BUG: The timer should not really have advanced 10 ms here -        // See issue #1477 -        .AT_TIME(110); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())) -        // BUG: The timer should not advance on both keydown and key-up -        // See issue #1477 -        .AT_TIME(120); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_R))).AT_TIME(130); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(140); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_L))).AT_TIME(150); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(160); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_D))).AT_TIME(170); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(180); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT))).AT_TIME(190); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT, KC_1))).AT_TIME(200); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT))).AT_TIME(210); -    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(220); -    run_one_scan_loop(); - -    key_macro.release(); -} | 
