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:
parent
af967667b0
commit
c86f0d6ff4
10 changed files with 92 additions and 0 deletions
44
app/tests/encoders/behavior_keymap.dtsi
Normal file
44
app/tests/encoders/behavior_keymap.dtsi
Normal 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>;
|
||||||
|
};
|
||||||
|
};
|
||||||
2
app/tests/encoders/layers-1/events.patterns
Normal file
2
app/tests/encoders/layers-1/events.patterns
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
s/.*hid_listener_keycode_//p
|
||||||
|
s/.*layer_changed/layer_changed/p
|
||||||
3
app/tests/encoders/layers-1/keycode_events.snapshot
Normal file
3
app/tests/encoders/layers-1/keycode_events.snapshot
Normal 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
|
||||||
11
app/tests/encoders/layers-1/native_posix_64.keymap
Normal file
11
app/tests/encoders/layers-1/native_posix_64.keymap
Normal 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>;
|
||||||
|
};
|
||||||
2
app/tests/encoders/layers-2/events.patterns
Normal file
2
app/tests/encoders/layers-2/events.patterns
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
s/.*hid_listener_keycode_//p
|
||||||
|
s/.*layer_changed/layer_changed/p
|
||||||
4
app/tests/encoders/layers-2/keycode_events.snapshot
Normal file
4
app/tests/encoders/layers-2/keycode_events.snapshot
Normal 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
|
||||||
11
app/tests/encoders/layers-2/native_posix_64.keymap
Normal file
11
app/tests/encoders/layers-2/native_posix_64.keymap
Normal 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>;
|
||||||
|
};
|
||||||
1
app/tests/encoders/rotate/events.patterns
Normal file
1
app/tests/encoders/rotate/events.patterns
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
s/.*hid_listener_keycode_//p
|
||||||
4
app/tests/encoders/rotate/keycode_events.snapshot
Normal file
4
app/tests/encoders/rotate/keycode_events.snapshot
Normal 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
|
||||||
10
app/tests/encoders/rotate/native_posix_64.keymap
Normal file
10
app/tests/encoders/rotate/native_posix_64.keymap
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = < ZMK_MOCK_PRESS(1,1,1000)
|
||||||
|
>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&mock_encoder {
|
||||||
|
events = <18 (-18)>;
|
||||||
|
};
|
||||||
Loading…
Add table
Add a link
Reference in a new issue