mirror of
https://github.com/zmkfirmware/zmk.git
synced 2026-03-19 20:45:18 -05:00
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:
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)>;
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user