summaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)Author
2022-06-05Fix and add unit tests for Caps Word to work with Unicode Map, Auto Shift, ↵Pascal Getreuer
Retro Shift. (#17284) * Fix Caps Word and Unicode Map * Tests for Caps Word + Auto Shift and Unicode Map. * Fix formatting * Add additional keyboard report expectation macros This commit defines five test utilities, EXPECT_REPORT, EXPECT_UNICODE, EXPECT_EMPTY_REPORT, EXPECT_ANY_REPORT and EXPECT_NO_REPORT for use with TestDriver. EXPECT_REPORT sets a gmock expectation that a given keyboard report will be sent. For instance, EXPECT_REPORT(driver, (KC_LSFT, KC_A)); is shorthand for EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT, KC_A))); EXPECT_UNICODE sets a gmock expectation that a given Unicode code point will be sent using UC_LNX input mode. For instance for U+2013, EXPECT_UNICODE(driver, 0x2013); expects the sequence of keys: "Ctrl+Shift+U, 2, 0, 1, 3, space". EXPECT_EMPTY_REPORT sets a gmock expectation that a given keyboard report will be sent. For instance EXPECT_EMPTY_REPORT(driver); expects a single report without keypresses or modifiers. EXPECT_ANY_REPORT sets a gmock expectation that a arbitrary keyboard report will be sent, without matching its contents. For instance EXPECT_ANY_REPORT(driver).Times(1); expects a single arbitrary keyboard report will be sent. EXPECT_NO_REPORT sets a gmock expectation that no keyboard report will be sent at all. * Add tap_key() and tap_keys() to TestFixture. This commit adds a `tap_key(key)` method to TestFixture that taps a given KeymapKey, optionally with a specified delay between press and release. Similarly, the method `tap_keys(key_a, key_b, key_c)` taps a sequence of KeymapKeys. * Use EXPECT_REPORT, tap_keys, etc. in most tests. This commit uses EXPECT_REPORT, EXPECT_UNICODE, EXPECT_EMPTY_REPORT, EXPECT_NO_REPORT, tap_key() and tap_keys() test utilities from the previous two commits in most tests. Particularly the EXPECT_REPORT macro is frequently useful and makes a nice reduction in boilerplate needed to express many tests. Co-authored-by: David Kosorin <david@kosorin.net>
2022-05-20Continue Caps Word when AltGr (right Alt) is held. (#17156)Pascal Getreuer
This is a minor bug fix for Caps Word. Currently, Caps Word turns off whenever a non-shift mod becomes active. This is done to avoid interfering with hotkeys. This commit makes an exception to continue Caps Word when AltGr (right Alt) is held. Outside the US, the AltGr key is used to type additional symbols (https://en.wikipedia.org/wiki/AltGr_key). Depending on the language, these may include symbols used within words like accented letters where it would be desirable to continue Caps Word.
2022-05-14Format code according to conventions (#17096)QMK Bot
2022-05-14Enhancement and fixes of "Secure" feature (#16958)Drashna Jaelre
2022-05-14[Core] Add Caps Word feature to core (#16588)Pascal Getreuer
Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-02-12Format code according to conventions (#16322)QMK Bot
2022-01-24Rip out old macro and action_function system (#16025)Ryan
* Rip out old macro and action_function system * Update quantum/action_util.c Co-authored-by: Joel Challis <git@zvecr.com>
2021-12-14[Core] Don't send keyboard reports that propagate no changes to the host ↵Stefan Kerkmann
(#14065)
2021-11-23 [Tests] Increase QMK test coverage take 2 (#15269)Stefan Kerkmann
* 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>
2021-11-23Revert "[Tests] Increase QMK test coverage (#13789)"Nick Brassel
This reverts commit b6054c0206609f3755f71d819643644d250288b0.
2021-11-23[Tests] Increase QMK test coverage (#13789)Stefan Kerkmann
* 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 * `qmk format-c * Fix tests Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-11-03Basic keycode overhaul (#14726)Ryan
2021-09-29[Core] Fix "6kro enable" and clarify naming (#14563)Drashna Jaelre
* Fix USB_6KRO_ENABLE compilation errors * Add info to docs * Rename define to be more accurate * Remove unused rule * Refixe docs
2021-07-25Allow output of logging when running unit tests (#13556)Joel Challis
* Initial pass at enabling logging for unit tests * Add to docs * Bind debug for more test types * Force everything * Tidy up slightly
2020-12-30Missed a couple more `#pragma once`s (#11351)Ryan
2020-12-28Ensure single newline at EOF for core files (#11310)Ryan
2020-03-13format code according to conventions [skip ci]QMK Bot
2020-03-13Fix pressing two keys with the same keycode but different modifiers (#2710)fredizzimo
* Fix extra keyboard report during test_fixture teardown * Add tests for pressing two keys with only different modifers * Fix #1708 When two keys that use the same keycode, but different modifiers were pressed at the same time, the second keypress wasn't registered. This is fixed by forcing a key release when we detect a new press for the same keycode. * Fix the NKRO version of is_key_pressed * Fix uninitalized loop variable Co-authored-by: Jack Humbert <jack.humb@gmail.com>
2019-08-30clang-format changesskullY
2019-01-11Remove empty action_function()fauxpark
2017-12-15add tests for action_layer.c and reset layer state after testsColin T.A. Gray
2017-07-11Fix unreferenced errors with mingw compiler and unit testsFred Sundvik
2017-07-08Reference issue #1478 from the unit testsFred Sundvik
2017-07-08Reference issue #1477 from the unit testsFred Sundvik
2017-07-08Reference issue #524 from the unit testsFred Sundvik
2017-07-08Reference issue #1476 from the unit testsFred Sundvik
2017-07-08Configure vscode file associations, use hpp instead of hFred Sundvik
2017-07-08Fix keymap formattingFred Sundvik
2017-07-08Add tests for macrosFred Sundvik
2017-07-08Rename tests to start with test_Fred Sundvik
2017-07-08Add basic timing support, and SFT_T testsFred Sundvik
Also expose some bugs...
2017-07-08Add test for a combo keyFred Sundvik
2017-07-08Add simple modifier testFred Sundvik
2017-07-08Improve the tests a bitFred Sundvik
2017-07-08A bigger test matrix, and test for unmapped keysFred Sundvik
2017-07-08Rename test.cpp to keypress.cppFred Sundvik
2017-07-08Move test keymap to keymap.cFred Sundvik
2017-06-19Add a couple of todos to keyboard_report_util.cppFred Sundvik
Also print the modifier state
2017-06-19More natural interface for setting keyboard ledsFred Sundvik
2017-06-18Add a test fixtureFred Sundvik
It only initializes QMK once, and clears the matrix after each test.
2017-06-18Test two keys pressed at onceFred Sundvik
2017-06-18Actually test for correct key pressesFred Sundvik
2017-06-18Fix the order of init and driver creationFred Sundvik
2017-06-18Add a couple of basic tests and implement driver mockFred Sundvik
2017-06-18Add keymapFred Sundvik
2017-06-18Dummy test matrix implementationFred Sundvik
2017-06-18Split common.mk into common.mk and common_features.mkFred Sundvik
To support including keyboard/keymap specific rules before it
2017-06-18Define MATRIX_COLS and MATRIX_ROWSFred Sundvik
2017-06-18Add basic infrastrucure for building full testsFred Sundvik