aboutsummaryrefslogtreecommitdiff
path: root/tests/basic/test_macro.cpp
diff options
context:
space:
mode:
authorStefan Kerkmann <karlk90@pm.me>2021-11-23 03:31:01 +0100
committerGitHub <noreply@github.com>2021-11-23 13:31:01 +1100
commita24bdccee0580d1263733bc7e66e4e4f97713f19 (patch)
tree868cb12a436a87b39c936292f442bcc266ae0224 /tests/basic/test_macro.cpp
parente20bc76a1e05d02c15a452e51fa76d9ec39b0369 (diff)
downloadqmk_firmware-a24bdccee0580d1263733bc7e66e4e4f97713f19.tar.gz
qmk_firmware-a24bdccee0580d1263733bc7e66e4e4f97713f19.zip
[Tests] Increase QMK test coverage take 2 (#15269)
* Add per-test keymaps * Add better trace and info logs for failed unit-tests * Add layer state assertion with tracing message * Use individual test binaries configuration options * Add basic qmk functionality tests * Add tap hold configurations tests * Add auto shift tests Co-authored-by: Nick Brassel <nick@tzarc.org>
Diffstat (limited to 'tests/basic/test_macro.cpp')
-rw-r--r--tests/basic/test_macro.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/tests/basic/test_macro.cpp b/tests/basic/test_macro.cpp
index 1ac6f473f..ae2f3b32e 100644
--- a/tests/basic/test_macro.cpp
+++ b/tests/basic/test_macro.cpp
@@ -24,10 +24,25 @@ class Macro : public TestFixture {};
24 24
25#define AT_TIME(t) WillOnce(InvokeWithoutArgs([current_time]() { EXPECT_EQ(timer_elapsed32(current_time), t); })) 25#define AT_TIME(t) WillOnce(InvokeWithoutArgs([current_time]() { EXPECT_EQ(timer_elapsed32(current_time), t); }))
26 26
27extern "C" const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
28 if (record->event.pressed) {
29 switch (id) {
30 case 0:
31 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);
32 }
33 }
34 return MACRO_NONE;
35};
36
27TEST_F(Macro, PlayASimpleMacro) { 37TEST_F(Macro, PlayASimpleMacro) {
28 TestDriver driver; 38 TestDriver driver;
29 InSequence s; 39 InSequence s;
30 press_key(8, 0); 40 auto key_macro = KeymapKey(0, 8, 0, M(0));
41
42 set_keymap({key_macro});
43
44 key_macro.press();
45
31 uint32_t current_time = timer_read32(); 46 uint32_t current_time = timer_read32();
32 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT))).AT_TIME(0); 47 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT))).AT_TIME(0);
33 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT, KC_H))).AT_TIME(0); 48 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT, KC_H))).AT_TIME(0);
@@ -68,4 +83,6 @@ TEST_F(Macro, PlayASimpleMacro) {
68 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT))).AT_TIME(210); 83 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LEFT_SHIFT))).AT_TIME(210);
69 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(220); 84 EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).AT_TIME(220);
70 run_one_scan_loop(); 85 run_one_scan_loop();
86
87 key_macro.release();
71} 88}