-
-
Notifications
You must be signed in to change notification settings - Fork 39.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve test invocation, fix Retro Shift bugs, and add Auto+Retro Shift test cases #15889
Conversation
df80a71
to
ecee26b
Compare
ecee26b
to
892173e
Compare
892173e
to
6e018ce
Compare
|
6e018ce
to
95f4b01
Compare
Last commit made |
Conflicts once base branch swapped to |
95f4b01
to
2c737d5
Compare
Conflict fixed. |
2c737d5
to
cd0e9d1
Compare
Last commit fixed having |
cd0e9d1
to
3e11c13
Compare
Since this hasn't been merged yet I'm adding unit tests. Shouldn't be long at all but don't review/merge in the meantime. |
5663128
to
55c52dc
Compare
Conflicts with #15741 now but that's just because I found things that could be deleted so should be easy :) I had to make some changes to the way tests are run to allow Retro Shift and the Tap Hold configurations to have the same folder names and both be runnable. I think the glob-like behavior is pretty good, if we name things appropriately one can run relevant test cases easily and without doing them all during development. It also sort of mirrors the keyboard commands and generated files. I need to look into the failing combo tests (E: they didn't add their keys to Retro Shift), give this actual physical board testing (E: looks good so far), and check if I've managed to fix one last bug unintentionally (E: I did) or if it needs a workaround, but there shouldn't be many changes what with the tests passing. |
quantum/action_tapping.c
Outdated
if (IS_TAPPING_KEY(waiting_buffer[i].event.key) && !waiting_buffer[i].event.pressed && ( | ||
WITHIN_TAPPING_TERM(waiting_buffer[i].event) | ||
# if defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT) | ||
|| ( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This being missing made so much weird behavior and caused 2-3 months of on-and-off playing with one bug and then getting frustrated and quitting for a while.
Thank you for your contribution! |
6efa940
to
64996de
Compare
@@ -497,7 +497,7 @@ void process_action(keyrecord_t *record, action_t action) { | |||
default: | |||
if (event.pressed) { | |||
if (tap_count > 0) { | |||
# ifdef HOLD_ON_OTHER_KEY_PRESS_PER_KEY | |||
# ifdef HOLD_ON_OTHER_KEY_PRESS |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Life got crazy but I finally got around to looking at this again after stale-bot reminded me. Should be good to go again, other combo tests are failing right now so the action won't run but they're passing. E: combo tests were my fault, fixed.
The issues weren't actually from that PR, they were from a couple of the things I had thrown in in the last PR to make Retro Shift ready for HOLD_ON_OTHER_KEY_PRESS
before it happened not being quite correct. I also fixed the above, which I think wasn't noticed in the three months since the switch because an earlier evaluation was also added (which I had to exclude Retro Shift from).
64996de
to
7ca9b67
Compare
7ca9b67
to
1cc9b49
Compare
Thank you for your contribution! |
Makes multiple tests of the same name work Allows calling all tests under a organizational directory
535a659
to
b3cb29d
Compare
b3cb29d
to
7a6ef6e
Compare
Description
This PR:
make test:auto_shift
will run all Auto Shift testsmake test:auto_shift:retro_shift:permissive_hold
(or similar) allows running tests in different directories that have the same name, versus the old behavior of whichever's parent directory was later in the alphabetmake test:permissive_hold
will run both Retro Shift'spermissive_hold
test and the normal oneIt also makes
RETRO_SHIFT
not default toTAPPING_TERM
, as the behavior can be confusing (trying out the feature -> holding -> not releasing betweenAUTO_SHIFT_TIMEOUT
andTAPPING_TERM
which are probably close for most users). The old behavior also made it impossible to make holds of any length send the shifted value aside from settingRETRO_SHIFT
toINT_MAX
or something.Types of Changes
Issues Fixed or Closed by This PR
DYNAMIC_TAPPING_TERM
Checklist