summaryrefslogtreecommitdiffstats
path: root/tests/basic
Commit message (Collapse)AuthorAgeFilesLines
* Introduce VERIFY_AND_CLEAR shorthand (#19370)Stefan Kerkmann2022-12-184-70/+70
| | | | | Which is just a syntactic sugar for testing::Mock::VerifyAndClearExpectations to reduce the visual clutter in unit-tests.
* [Test] Reset timer for every unit test and provide timestamps for log ↵Stefan Kerkmann2022-12-151-0/+52
| | | | messages (#17028)
* Bug17281 - Retain momentary layers until the end of tapping (#17282)Felix Kuehling2022-11-281-0/+69
| | | | | | | | | | | | | | | | | | | | * Make process_tapping more readable Move most #ifdefs into conditionally defined macros to make the logic easier to follow. * Retain momentary layers until the end of tapping This allows mod-tap and layer-tap keys on layers to behave as expected. Bug: https://github.com/qmk/qmk_firmware/issues/17281 * Add tests for delayed mod/layer release while tapping Mods and layer key release is delayed while tapping is in progress to ensure that the tap is registered with the modifier state and on the layer where the key was first pressed. Signed-off-by: Felix Kuehling <felix.kuehling@gmail.com>
* Don't clear keys on layer change unless STRICT_LAYER_RELEASE is enabled (#18577)Drashna Jaelre2022-11-121-1/+0
| | | | | | | | | | | | | * Don't clear mousekeys unless clearing keys * Revert "Don't clear mousekeys unless clearing keys" This reverts commit 29a0c06b547d72b80d416a8b6fab478c77fbd247. * Just don't clear anything on layer set * Fix lint * Enable test?
* [Core] Process all changed keys in one scan loop, deprecate ↵Stefan Kerkmann2022-08-061-22/+0
| | | | `QMK_KEYS_PER_SCAN` (#15292)
* Fix and add unit tests for Caps Word to work with Unicode Map, Auto Shift, ↵Pascal Getreuer2022-06-054-110/+110
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Rip out old macro and action_function system (#16025)Ryan2022-01-241-88/+0
| | | | | | | * Rip out old macro and action_function system * Update quantum/action_util.c Co-authored-by: Joel Challis <git@zvecr.com>
* [Core] Don't send keyboard reports that propagate no changes to the host ↵Stefan Kerkmann2021-12-143-56/+40
| | | | (#14065)
* [Tests] Increase QMK test coverage take 2 (#15269)Stefan Kerkmann2021-11-238-182/+776
| | | | | | | | | | | | | | | | | * 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>
* Revert "[Tests] Increase QMK test coverage (#13789)"Nick Brassel2021-11-238-761/+167
| | | | This reverts commit b6054c0206609f3755f71d819643644d250288b0.
* [Tests] Increase QMK test coverage (#13789)Stefan Kerkmann2021-11-238-167/+761
| | | | | | | | | | | | | | | | | | | | | * 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>
* Basic keycode overhaul (#14726)Ryan2021-11-033-47/+47
|
* Ensure single newline at EOF for core files (#11310)Ryan2020-12-283-6/+3
|
* format code according to conventions [skip ci]QMK Bot2020-03-132-105/+104
|
* Fix pressing two keys with the same keycode but different modifiers (#2710)fredizzimo2020-03-132-2/+119
| | | | | | | | | | | | | | | | | | * 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>
* clang-format changesskullY2019-08-303-76/+50
|
* Remove empty action_function()fauxpark2019-01-111-3/+0
|
* add tests for action_layer.c and reset layer state after testsColin T.A. Gray2017-12-151-0/+92
|
* Fix unreferenced errors with mingw compiler and unit testsFred Sundvik2017-07-111-1/+4
|
* Reference issue #1478 from the unit testsFred Sundvik2017-07-081-0/+1
|
* Reference issue #1477 from the unit testsFred Sundvik2017-07-081-0/+2
|
* Reference issue #524 from the unit testsFred Sundvik2017-07-081-0/+3
|
* Reference issue #1476 from the unit testsFred Sundvik2017-07-081-0/+4
|
* Configure vscode file associations, use hpp instead of hFred Sundvik2017-07-083-3/+3
|
* Fix keymap formattingFred Sundvik2017-07-081-10/+10
|
* Add tests for macrosFred Sundvik2017-07-082-1/+109
|
* Rename tests to start with test_Fred Sundvik2017-07-082-0/+0
|
* Add basic timing support, and SFT_T testsFred Sundvik2017-07-084-14/+102
| | | | Also expose some bugs...
* Add test for a combo keyFred Sundvik2017-07-082-5/+44
|
* Add simple modifier testFred Sundvik2017-07-082-4/+22
|
* Improve the tests a bitFred Sundvik2017-07-081-1/+10
|
* A bigger test matrix, and test for unmapped keysFred Sundvik2017-07-083-5/+18
|
* Rename test.cpp to keypress.cppFred Sundvik2017-07-081-0/+0
|
* Move test keymap to keymap.cFred Sundvik2017-07-082-7/+24
|
* More natural interface for setting keyboard ledsFred Sundvik2017-06-191-3/+0
|
* Add a test fixtureFred Sundvik2017-06-181-13/+6
| | | | It only initializes QMK once, and clears the matrix after each test.
* Test two keys pressed at onceFred Sundvik2017-06-181-1/+15
|
* Actually test for correct key pressesFred Sundvik2017-06-181-2/+6
|
* Fix the order of init and driver creationFred Sundvik2017-06-181-2/+4
|
* Add a couple of basic tests and implement driver mockFred Sundvik2017-06-181-0/+26
|
* Add keymapFred Sundvik2017-06-182-1/+8
|
* Split common.mk into common.mk and common_features.mkFred Sundvik2017-06-181-1/+3
| | | | To support including keyboard/keymap specific rules before it
* Define MATRIX_COLS and MATRIX_ROWSFred Sundvik2017-06-181-0/+2
|
* Add basic infrastrucure for building full testsFred Sundvik2017-06-183-0/+53