From 54a9fdca5ab28853bd857d7e629d9b9c08fccccc Mon Sep 17 00:00:00 2001 From: Dylan MacKenzie Date: Mon, 6 Nov 2023 14:04:06 -0800 Subject: [PATCH] add tests for molock --- .../1-normal/events.patterns | 3 ++ .../1-normal/keycode_events.snapshot | 5 ++++ .../1-normal/native_posix_64.keymap | 22 ++++++++++++++ .../2-deactivate-locked/events.patterns | 3 ++ .../keycode_events.snapshot | 10 +++++++ .../native_posix_64.keymap | 28 +++++++++++++++++ .../3-default-fallback/events.patterns | 3 ++ .../keycode_events.snapshot | 9 ++++++ .../3-default-fallback/native_posix_64.keymap | 28 +++++++++++++++++ .../4-relock/events.patterns | 3 ++ .../4-relock/keycode_events.snapshot | 9 ++++++ .../4-relock/native_posix_64.keymap | 30 +++++++++++++++++++ .../5-custom/events.patterns | 3 ++ .../5-custom/keycode_events.snapshot | 5 ++++ .../5-custom/native_posix_64.keymap | 22 ++++++++++++++ .../6-custom-fallback/events.patterns | 3 ++ .../6-custom-fallback/keycode_events.snapshot | 2 ++ .../6-custom-fallback/native_posix_64.keymap | 17 +++++++++++ .../momentary-layer-lock/behavior_keymap.dtsi | 27 +++++++++++++++++ 19 files changed, 232 insertions(+) create mode 100644 app/tests/momentary-layer-lock/1-normal/events.patterns create mode 100644 app/tests/momentary-layer-lock/1-normal/keycode_events.snapshot create mode 100644 app/tests/momentary-layer-lock/1-normal/native_posix_64.keymap create mode 100644 app/tests/momentary-layer-lock/2-deactivate-locked/events.patterns create mode 100644 app/tests/momentary-layer-lock/2-deactivate-locked/keycode_events.snapshot create mode 100644 app/tests/momentary-layer-lock/2-deactivate-locked/native_posix_64.keymap create mode 100644 app/tests/momentary-layer-lock/3-default-fallback/events.patterns create mode 100644 app/tests/momentary-layer-lock/3-default-fallback/keycode_events.snapshot create mode 100644 app/tests/momentary-layer-lock/3-default-fallback/native_posix_64.keymap create mode 100644 app/tests/momentary-layer-lock/4-relock/events.patterns create mode 100644 app/tests/momentary-layer-lock/4-relock/keycode_events.snapshot create mode 100644 app/tests/momentary-layer-lock/4-relock/native_posix_64.keymap create mode 100644 app/tests/momentary-layer-lock/5-custom/events.patterns create mode 100644 app/tests/momentary-layer-lock/5-custom/keycode_events.snapshot create mode 100644 app/tests/momentary-layer-lock/5-custom/native_posix_64.keymap create mode 100644 app/tests/momentary-layer-lock/6-custom-fallback/events.patterns create mode 100644 app/tests/momentary-layer-lock/6-custom-fallback/keycode_events.snapshot create mode 100644 app/tests/momentary-layer-lock/6-custom-fallback/native_posix_64.keymap create mode 100644 app/tests/momentary-layer-lock/behavior_keymap.dtsi diff --git a/app/tests/momentary-layer-lock/1-normal/events.patterns b/app/tests/momentary-layer-lock/1-normal/events.patterns new file mode 100644 index 00000000..a7191624 --- /dev/null +++ b/app/tests/momentary-layer-lock/1-normal/events.patterns @@ -0,0 +1,3 @@ +s/.*hid_listener_keycode/kp/p +s/.*set_layer_state: layer_changed:/layer_changed:/p +s/.*mo_keymap_binding/mo/p \ No newline at end of file diff --git a/app/tests/momentary-layer-lock/1-normal/keycode_events.snapshot b/app/tests/momentary-layer-lock/1-normal/keycode_events.snapshot new file mode 100644 index 00000000..4f7655be --- /dev/null +++ b/app/tests/momentary-layer-lock/1-normal/keycode_events.snapshot @@ -0,0 +1,5 @@ +mo_pressed: position 1 layer 1 +layer_changed: layer 1 state 1 +mo_released: position 1 layer 1 +kp_pressed: usage_page 0x07 keycode 0x1E implicit_mods 0x00 explicit_mods 0x00 +kp_released: usage_page 0x07 keycode 0x1E implicit_mods 0x00 explicit_mods 0x00 diff --git a/app/tests/momentary-layer-lock/1-normal/native_posix_64.keymap b/app/tests/momentary-layer-lock/1-normal/native_posix_64.keymap new file mode 100644 index 00000000..d53ebd7d --- /dev/null +++ b/app/tests/momentary-layer-lock/1-normal/native_posix_64.keymap @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2023 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include +#include +#include +#include "../behavior_keymap.dtsi" + +&kscan { + events = < + ZMK_MOCK_PRESS(0,1,10) + ZMK_MOCK_PRESS(1,0,10) + ZMK_MOCK_RELEASE(1,0,10) + ZMK_MOCK_RELEASE(0,1,10) + + ZMK_MOCK_PRESS(0,0,10) + ZMK_MOCK_RELEASE(0,0,10) + >; +}; \ No newline at end of file diff --git a/app/tests/momentary-layer-lock/2-deactivate-locked/events.patterns b/app/tests/momentary-layer-lock/2-deactivate-locked/events.patterns new file mode 100644 index 00000000..a7191624 --- /dev/null +++ b/app/tests/momentary-layer-lock/2-deactivate-locked/events.patterns @@ -0,0 +1,3 @@ +s/.*hid_listener_keycode/kp/p +s/.*set_layer_state: layer_changed:/layer_changed:/p +s/.*mo_keymap_binding/mo/p \ No newline at end of file diff --git a/app/tests/momentary-layer-lock/2-deactivate-locked/keycode_events.snapshot b/app/tests/momentary-layer-lock/2-deactivate-locked/keycode_events.snapshot new file mode 100644 index 00000000..f204ceaf --- /dev/null +++ b/app/tests/momentary-layer-lock/2-deactivate-locked/keycode_events.snapshot @@ -0,0 +1,10 @@ +mo_pressed: position 1 layer 1 +layer_changed: layer 1 state 1 +mo_released: position 1 layer 1 +kp_pressed: usage_page 0x07 keycode 0x1E implicit_mods 0x00 explicit_mods 0x00 +kp_released: usage_page 0x07 keycode 0x1E implicit_mods 0x00 explicit_mods 0x00 +mo_pressed: position 1 layer 1 +mo_released: position 1 layer 1 +layer_changed: layer 1 state 0 +kp_pressed: usage_page 0x07 keycode 0x27 implicit_mods 0x00 explicit_mods 0x00 +kp_released: usage_page 0x07 keycode 0x27 implicit_mods 0x00 explicit_mods 0x00 diff --git a/app/tests/momentary-layer-lock/2-deactivate-locked/native_posix_64.keymap b/app/tests/momentary-layer-lock/2-deactivate-locked/native_posix_64.keymap new file mode 100644 index 00000000..b9146f78 --- /dev/null +++ b/app/tests/momentary-layer-lock/2-deactivate-locked/native_posix_64.keymap @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2023 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include +#include +#include +#include "../behavior_keymap.dtsi" + +&kscan { + events = < + ZMK_MOCK_PRESS(0,1,10) + ZMK_MOCK_PRESS(1,0,10) + ZMK_MOCK_RELEASE(1,0,10) + ZMK_MOCK_RELEASE(0,1,10) + + ZMK_MOCK_PRESS(0,0,10) + ZMK_MOCK_RELEASE(0,0,10) + + ZMK_MOCK_PRESS(0,1,10) + ZMK_MOCK_RELEASE(0,1,10) + + ZMK_MOCK_PRESS(0,0,10) + ZMK_MOCK_RELEASE(0,0,10) + >; +}; \ No newline at end of file diff --git a/app/tests/momentary-layer-lock/3-default-fallback/events.patterns b/app/tests/momentary-layer-lock/3-default-fallback/events.patterns new file mode 100644 index 00000000..a7191624 --- /dev/null +++ b/app/tests/momentary-layer-lock/3-default-fallback/events.patterns @@ -0,0 +1,3 @@ +s/.*hid_listener_keycode/kp/p +s/.*set_layer_state: layer_changed:/layer_changed:/p +s/.*mo_keymap_binding/mo/p \ No newline at end of file diff --git a/app/tests/momentary-layer-lock/3-default-fallback/keycode_events.snapshot b/app/tests/momentary-layer-lock/3-default-fallback/keycode_events.snapshot new file mode 100644 index 00000000..196fd278 --- /dev/null +++ b/app/tests/momentary-layer-lock/3-default-fallback/keycode_events.snapshot @@ -0,0 +1,9 @@ +mo_pressed: position 1 layer 1 +layer_changed: layer 1 state 1 +mo_released: position 1 layer 1 +kp_pressed: usage_page 0x07 keycode 0x1E implicit_mods 0x00 explicit_mods 0x00 +kp_released: usage_page 0x07 keycode 0x1E implicit_mods 0x00 explicit_mods 0x00 +layer_changed: layer 1 state 0 +layer_changed: layer 0 state 1 +kp_pressed: usage_page 0x07 keycode 0x27 implicit_mods 0x00 explicit_mods 0x00 +kp_released: usage_page 0x07 keycode 0x27 implicit_mods 0x00 explicit_mods 0x00 diff --git a/app/tests/momentary-layer-lock/3-default-fallback/native_posix_64.keymap b/app/tests/momentary-layer-lock/3-default-fallback/native_posix_64.keymap new file mode 100644 index 00000000..c134cd19 --- /dev/null +++ b/app/tests/momentary-layer-lock/3-default-fallback/native_posix_64.keymap @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2023 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include +#include +#include +#include "../behavior_keymap.dtsi" + +&kscan { + events = < + ZMK_MOCK_PRESS(0,1,10) + ZMK_MOCK_PRESS(1,0,10) + ZMK_MOCK_RELEASE(1,0,10) + ZMK_MOCK_RELEASE(0,1,10) + + ZMK_MOCK_PRESS(0,0,10) + ZMK_MOCK_RELEASE(0,0,10) + + ZMK_MOCK_PRESS(1,0,10) + ZMK_MOCK_RELEASE(1,0,10) + + ZMK_MOCK_PRESS(0,0,10) + ZMK_MOCK_RELEASE(0,0,10) + >; +}; \ No newline at end of file diff --git a/app/tests/momentary-layer-lock/4-relock/events.patterns b/app/tests/momentary-layer-lock/4-relock/events.patterns new file mode 100644 index 00000000..a7191624 --- /dev/null +++ b/app/tests/momentary-layer-lock/4-relock/events.patterns @@ -0,0 +1,3 @@ +s/.*hid_listener_keycode/kp/p +s/.*set_layer_state: layer_changed:/layer_changed:/p +s/.*mo_keymap_binding/mo/p \ No newline at end of file diff --git a/app/tests/momentary-layer-lock/4-relock/keycode_events.snapshot b/app/tests/momentary-layer-lock/4-relock/keycode_events.snapshot new file mode 100644 index 00000000..50a99eb8 --- /dev/null +++ b/app/tests/momentary-layer-lock/4-relock/keycode_events.snapshot @@ -0,0 +1,9 @@ +mo_pressed: position 1 layer 1 +layer_changed: layer 1 state 1 +mo_released: position 1 layer 1 +kp_pressed: usage_page 0x07 keycode 0x1E implicit_mods 0x00 explicit_mods 0x00 +kp_released: usage_page 0x07 keycode 0x1E implicit_mods 0x00 explicit_mods 0x00 +mo_pressed: position 1 layer 1 +mo_released: position 1 layer 1 +kp_pressed: usage_page 0x07 keycode 0x1E implicit_mods 0x00 explicit_mods 0x00 +kp_released: usage_page 0x07 keycode 0x1E implicit_mods 0x00 explicit_mods 0x00 diff --git a/app/tests/momentary-layer-lock/4-relock/native_posix_64.keymap b/app/tests/momentary-layer-lock/4-relock/native_posix_64.keymap new file mode 100644 index 00000000..6575ddc8 --- /dev/null +++ b/app/tests/momentary-layer-lock/4-relock/native_posix_64.keymap @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2023 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include +#include +#include +#include "../behavior_keymap.dtsi" + +&kscan { + events = < + ZMK_MOCK_PRESS(0,1,10) + ZMK_MOCK_PRESS(1,0,10) + ZMK_MOCK_RELEASE(1,0,10) + ZMK_MOCK_RELEASE(0,1,10) + + ZMK_MOCK_PRESS(0,0,10) + ZMK_MOCK_RELEASE(0,0,10) + + ZMK_MOCK_PRESS(0,1,10) + ZMK_MOCK_PRESS(1,0,10) + ZMK_MOCK_RELEASE(1,0,10) + ZMK_MOCK_RELEASE(0,1,10) + + ZMK_MOCK_PRESS(0,0,10) + ZMK_MOCK_RELEASE(0,0,10) + >; +}; \ No newline at end of file diff --git a/app/tests/momentary-layer-lock/5-custom/events.patterns b/app/tests/momentary-layer-lock/5-custom/events.patterns new file mode 100644 index 00000000..a7191624 --- /dev/null +++ b/app/tests/momentary-layer-lock/5-custom/events.patterns @@ -0,0 +1,3 @@ +s/.*hid_listener_keycode/kp/p +s/.*set_layer_state: layer_changed:/layer_changed:/p +s/.*mo_keymap_binding/mo/p \ No newline at end of file diff --git a/app/tests/momentary-layer-lock/5-custom/keycode_events.snapshot b/app/tests/momentary-layer-lock/5-custom/keycode_events.snapshot new file mode 100644 index 00000000..4f7655be --- /dev/null +++ b/app/tests/momentary-layer-lock/5-custom/keycode_events.snapshot @@ -0,0 +1,5 @@ +mo_pressed: position 1 layer 1 +layer_changed: layer 1 state 1 +mo_released: position 1 layer 1 +kp_pressed: usage_page 0x07 keycode 0x1E implicit_mods 0x00 explicit_mods 0x00 +kp_released: usage_page 0x07 keycode 0x1E implicit_mods 0x00 explicit_mods 0x00 diff --git a/app/tests/momentary-layer-lock/5-custom/native_posix_64.keymap b/app/tests/momentary-layer-lock/5-custom/native_posix_64.keymap new file mode 100644 index 00000000..bf942116 --- /dev/null +++ b/app/tests/momentary-layer-lock/5-custom/native_posix_64.keymap @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2023 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include +#include +#include +#include "../behavior_keymap.dtsi" + +&kscan { + events = < + ZMK_MOCK_PRESS(0,1,10) + ZMK_MOCK_PRESS(1,1,10) + ZMK_MOCK_RELEASE(1,1,10) + ZMK_MOCK_RELEASE(0,1,10) + + ZMK_MOCK_PRESS(0,0,10) + ZMK_MOCK_RELEASE(0,0,10) + >; +}; \ No newline at end of file diff --git a/app/tests/momentary-layer-lock/6-custom-fallback/events.patterns b/app/tests/momentary-layer-lock/6-custom-fallback/events.patterns new file mode 100644 index 00000000..a7191624 --- /dev/null +++ b/app/tests/momentary-layer-lock/6-custom-fallback/events.patterns @@ -0,0 +1,3 @@ +s/.*hid_listener_keycode/kp/p +s/.*set_layer_state: layer_changed:/layer_changed:/p +s/.*mo_keymap_binding/mo/p \ No newline at end of file diff --git a/app/tests/momentary-layer-lock/6-custom-fallback/keycode_events.snapshot b/app/tests/momentary-layer-lock/6-custom-fallback/keycode_events.snapshot new file mode 100644 index 00000000..c96d1b4c --- /dev/null +++ b/app/tests/momentary-layer-lock/6-custom-fallback/keycode_events.snapshot @@ -0,0 +1,2 @@ +kp_pressed: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00 +kp_released: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00 diff --git a/app/tests/momentary-layer-lock/6-custom-fallback/native_posix_64.keymap b/app/tests/momentary-layer-lock/6-custom-fallback/native_posix_64.keymap new file mode 100644 index 00000000..f5e698bb --- /dev/null +++ b/app/tests/momentary-layer-lock/6-custom-fallback/native_posix_64.keymap @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2023 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include +#include +#include +#include "../behavior_keymap.dtsi" + +&kscan { + events = < + ZMK_MOCK_PRESS(1,1,10) + ZMK_MOCK_RELEASE(1,1,10) + >; +}; \ No newline at end of file diff --git a/app/tests/momentary-layer-lock/behavior_keymap.dtsi b/app/tests/momentary-layer-lock/behavior_keymap.dtsi new file mode 100644 index 00000000..a3f6cf84 --- /dev/null +++ b/app/tests/momentary-layer-lock/behavior_keymap.dtsi @@ -0,0 +1,27 @@ +/ { + behaviors{ + kp_molock: kp_molock { + compatible = "zmk,behavior-momentary-layer-lock"; + label = "KP_MOLOCK"; + #binding-cells = <0>; + bindings = <&kp F>; + }; + }; + + keymap { + compatible = "zmk,keymap"; + label ="Default keymap"; + + default_layer { + bindings = < + &kp N0 &mo 1 + &molock &kp_molock>; + }; + + layer_1 { + bindings = < + &kp N1 &trans + &trans &trans>; + }; + }; +};