chore: Add some basic encoder tests (#2845)

Adds some encoder tests for rotating, and basic layers.
Mock Kscans don't seem to interact nicely, slightly on the hacky side.
However, better to have hacky tests than no tests.
This commit is contained in:
Nicolas Munnich 2025-07-31 23:29:59 +01:00 committed by GitHub
parent af967667b0
commit c86f0d6ff4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 92 additions and 0 deletions

View File

@ -0,0 +1,44 @@
#include <dt-bindings/zmk/keys.h>
#include <behaviors.dtsi>
#include <dt-bindings/zmk/kscan_mock.h>
/ {
keymap {
compatible = "zmk,keymap";
default_layer {
bindings = <
&tog 2 &kp X
&tog 1 &none
>;
sensor-bindings = <&inc_dec_kp A B>;
};
skip_layer {
bindings = <
&trans &kp Y
&none &none
>;
sensor-bindings = <&inc_dec_kp N M>;
};
alt_layer {
bindings = <
&trans &kp Z
&none &none
>;
sensor-bindings = <&inc_dec_kp C D>;
};
};
mock_encoder: mock_encoder {
compatible = "zmk,sensor-encoder-mock";
status = "okay";
event-startup-delay = <200>;
event-period = <200>;
};
sensors: sensors {
compatible = "zmk,keymap-sensors";
sensors = <&mock_encoder>;
triggers-per-rotation = <20>;
};
};

View File

@ -0,0 +1,2 @@
s/.*hid_listener_keycode_//p
s/.*layer_changed/layer_changed/p

View File

@ -0,0 +1,3 @@
layer_changed: layer 2 state 1
pressed: usage_page 0x07 keycode 0x06 implicit_mods 0x00 explicit_mods 0x00
released: usage_page 0x07 keycode 0x06 implicit_mods 0x00 explicit_mods 0x00

View File

@ -0,0 +1,11 @@
#include "../behavior_keymap.dtsi"
&kscan {
events = < ZMK_MOCK_PRESS(0,0,10)
ZMK_MOCK_PRESS(1,1,8000)
>;
};
&mock_encoder {
events = <18>;
};

View File

@ -0,0 +1,2 @@
s/.*hid_listener_keycode_//p
s/.*layer_changed/layer_changed/p

View File

@ -0,0 +1,4 @@
layer_changed: layer 1 state 1
layer_changed: layer 2 state 1
pressed: usage_page 0x07 keycode 0x06 implicit_mods 0x00 explicit_mods 0x00
released: usage_page 0x07 keycode 0x06 implicit_mods 0x00 explicit_mods 0x00

View File

@ -0,0 +1,11 @@
#include "../behavior_keymap.dtsi"
&kscan {
events = < ZMK_MOCK_PRESS(1,0,10) ZMK_MOCK_PRESS(0,0,10)
ZMK_MOCK_PRESS(1,1,8000)
>;
};
&mock_encoder {
events = <18>;
};

View File

@ -0,0 +1 @@
s/.*hid_listener_keycode_//p

View File

@ -0,0 +1,4 @@
pressed: usage_page 0x07 keycode 0x04 implicit_mods 0x00 explicit_mods 0x00
released: usage_page 0x07 keycode 0x04 implicit_mods 0x00 explicit_mods 0x00
pressed: usage_page 0x07 keycode 0x05 implicit_mods 0x00 explicit_mods 0x00
released: usage_page 0x07 keycode 0x05 implicit_mods 0x00 explicit_mods 0x00

View File

@ -0,0 +1,10 @@
#include "../behavior_keymap.dtsi"
&kscan {
events = < ZMK_MOCK_PRESS(1,1,1000)
>;
};
&mock_encoder {
events = <18 (-18)>;
};