diff options
author | Andre Brait <andrebrait@gmail.com> | 2023-09-25 04:48:55 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-25 12:48:55 +1000 |
commit | 960d6e0d7d8007ee826184967dc1edc5ab7b2755 (patch) | |
tree | e6c429f3086e0c51ad84e25e16c5c5fd1c937425 /quantum/debounce/tests/asym_eager_defer_pk_tests.cpp | |
parent | dd94877ec6d2ee5c4cdb0e71287abd76585b0268 (diff) |
[Enhancement] Improvements for debounce test coverage + bug fixes for sym_defer_g and sym_eager_pr (#21667)
Co-authored-by: Nebuleon <2391500+Nebuleon@users.noreply.github.com>
Diffstat (limited to 'quantum/debounce/tests/asym_eager_defer_pk_tests.cpp')
-rw-r--r-- | quantum/debounce/tests/asym_eager_defer_pk_tests.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/quantum/debounce/tests/asym_eager_defer_pk_tests.cpp b/quantum/debounce/tests/asym_eager_defer_pk_tests.cpp index 44b4fe1956..6737f499ab 100644 --- a/quantum/debounce/tests/asym_eager_defer_pk_tests.cpp +++ b/quantum/debounce/tests/asym_eager_defer_pk_tests.cpp @@ -392,3 +392,32 @@ TEST_F(DebounceTest, OneKeyDelayedScan8) { time_jumps_ = true; runEvents(); } + +TEST_F(DebounceTest, AsyncTickOneKeyShort1) { + addEvents({ + /* Time, Inputs, Outputs */ + {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + /* Release key after 1ms delay */ + {1, {{0, 1, UP}}, {}}, + + /* + * Until the eager timer on DOWN is observed to finish, the defer timer + * on UP can't start. There's no workaround for this because it's not + * possible to debounce an event that isn't being tracked. + * + * sym_defer_pk has the same problem but the test has to track that the + * key changed state so the DOWN timer is always allowed to finish + * before starting the UP timer. + */ + {5, {}, {}}, + + {10, {}, {{0, 1, UP}}}, /* 5ms+5ms after DOWN at time 0 */ + /* Press key again after 1ms delay */ + {11, {{0, 1, DOWN}}, {{0, 1, DOWN}}}, + }); + /* + * Debounce implementations should never read the timer more than once per invocation + */ + async_time_jumps_ = DEBOUNCE; + runEvents(); +} |