summaryrefslogtreecommitdiff
path: root/app/tests
diff options
context:
space:
mode:
Diffstat (limited to 'app/tests')
-rw-r--r--app/tests/keypress/behavior_keymap.dtsi28
-rw-r--r--app/tests/keypress/cp-press-release/events.patterns1
-rw-r--r--app/tests/keypress/cp-press-release/keycode_events.snapshot2
-rw-r--r--app/tests/keypress/cp-press-release/native_posix.keymap5
-rw-r--r--app/tests/keypress/kp-press-release/events.patterns1
-rw-r--r--app/tests/keypress/kp-press-release/keycode_events.snapshot2
-rw-r--r--app/tests/keypress/kp-press-release/native_posix.keymap8
-rw-r--r--app/tests/momentary-layer/behavior_keymap.dtsi28
-rw-r--r--app/tests/momentary-layer/early-key-release/events.patterns2
-rw-r--r--app/tests/momentary-layer/early-key-release/keycode_events.snapshot4
-rw-r--r--app/tests/momentary-layer/early-key-release/native_posix.keymap8
-rw-r--r--app/tests/momentary-layer/early-key-release/pending0
-rw-r--r--app/tests/momentary-layer/normal/events.patterns2
-rw-r--r--app/tests/momentary-layer/normal/keycode_events.snapshot4
-rw-r--r--app/tests/momentary-layer/normal/native_posix.keymap8
-rw-r--r--app/tests/none/behavior_keymap.dtsi22
-rw-r--r--app/tests/none/layered/events.patterns1
-rw-r--r--app/tests/none/layered/keycode_events.snapshot0
-rw-r--r--app/tests/none/layered/native_posix.keymap8
-rw-r--r--app/tests/none/normal/events.patterns1
-rw-r--r--app/tests/none/normal/keycode_events.snapshot0
-rw-r--r--app/tests/none/normal/native_posix.keymap8
-rw-r--r--app/tests/toggle-layer/behavior_keymap.dtsi28
-rw-r--r--app/tests/toggle-layer/early-key-release/events.patterns2
-rw-r--r--app/tests/toggle-layer/early-key-release/keycode_events.snapshot6
-rw-r--r--app/tests/toggle-layer/early-key-release/native_posix.keymap9
-rw-r--r--app/tests/toggle-layer/early-key-release/pending0
-rw-r--r--app/tests/toggle-layer/normal/events.patterns2
-rw-r--r--app/tests/toggle-layer/normal/keycode_events.snapshot4
-rw-r--r--app/tests/toggle-layer/normal/native_posix.keymap8
-rw-r--r--app/tests/transparent/behavior_keymap.dtsi22
-rw-r--r--app/tests/transparent/layered/events.patterns1
-rw-r--r--app/tests/transparent/layered/keycode_events.snapshot2
-rw-r--r--app/tests/transparent/layered/native_posix.keymap8
-rw-r--r--app/tests/transparent/normal/events.patterns1
-rw-r--r--app/tests/transparent/normal/keycode_events.snapshot0
-rw-r--r--app/tests/transparent/normal/native_posix.keymap8
37 files changed, 244 insertions, 0 deletions
diff --git a/app/tests/keypress/behavior_keymap.dtsi b/app/tests/keypress/behavior_keymap.dtsi
new file mode 100644
index 0000000..34c445c
--- /dev/null
+++ b/app/tests/keypress/behavior_keymap.dtsi
@@ -0,0 +1,28 @@
+#include <dt-bindings/zmk/keys.h>
+#include <behaviors.dtsi>
+#include <dt-bindings/zmk/kscan-mock.h>
+
+/ {
+ keymap {
+ compatible = "zmk,keymap";
+ label ="Default keymap";
+
+ default_layer {
+ bindings = <
+ &kp B &mo 1
+ &kp D &kp G>;
+ };
+
+ lower_layer {
+ bindings = <
+ &cp M_NEXT &trans
+ &kp L &kp J>;
+ };
+
+ raise_layer {
+ bindings = <
+ &kp W &kp U
+ &kp X &kp M>;
+ };
+ };
+};
diff --git a/app/tests/keypress/cp-press-release/events.patterns b/app/tests/keypress/cp-press-release/events.patterns
new file mode 100644
index 0000000..833100f
--- /dev/null
+++ b/app/tests/keypress/cp-press-release/events.patterns
@@ -0,0 +1 @@
+s/.*hid_listener_keycode_//p \ No newline at end of file
diff --git a/app/tests/keypress/cp-press-release/keycode_events.snapshot b/app/tests/keypress/cp-press-release/keycode_events.snapshot
new file mode 100644
index 0000000..f1ef0ed
--- /dev/null
+++ b/app/tests/keypress/cp-press-release/keycode_events.snapshot
@@ -0,0 +1,2 @@
+pressed: usage_page 0x0c keycode 0xb5
+released: usage_page 0x0c keycode 0xb5
diff --git a/app/tests/keypress/cp-press-release/native_posix.keymap b/app/tests/keypress/cp-press-release/native_posix.keymap
new file mode 100644
index 0000000..0e86f93
--- /dev/null
+++ b/app/tests/keypress/cp-press-release/native_posix.keymap
@@ -0,0 +1,5 @@
+#include "../behavior_keymap.dtsi"
+
+&kscan {
+ events = <ZMK_MOCK_PRESS(0,1,10) ZMK_MOCK_PRESS(0,0,10) ZMK_MOCK_RELEASE(0,0,10) ZMK_MOCK_RELEASE(0,1,10)>;
+}; \ No newline at end of file
diff --git a/app/tests/keypress/kp-press-release/events.patterns b/app/tests/keypress/kp-press-release/events.patterns
new file mode 100644
index 0000000..833100f
--- /dev/null
+++ b/app/tests/keypress/kp-press-release/events.patterns
@@ -0,0 +1 @@
+s/.*hid_listener_keycode_//p \ No newline at end of file
diff --git a/app/tests/keypress/kp-press-release/keycode_events.snapshot b/app/tests/keypress/kp-press-release/keycode_events.snapshot
new file mode 100644
index 0000000..f1ef0ed
--- /dev/null
+++ b/app/tests/keypress/kp-press-release/keycode_events.snapshot
@@ -0,0 +1,2 @@
+pressed: usage_page 0x0c keycode 0xb5
+released: usage_page 0x0c keycode 0xb5
diff --git a/app/tests/keypress/kp-press-release/native_posix.keymap b/app/tests/keypress/kp-press-release/native_posix.keymap
new file mode 100644
index 0000000..7f73690
--- /dev/null
+++ b/app/tests/keypress/kp-press-release/native_posix.keymap
@@ -0,0 +1,8 @@
+#include <dt-bindings/zmk/keys.h>
+#include <behaviors.dtsi>
+#include <dt-bindings/zmk/kscan-mock.h>
+#include "../behavior_keymap.dtsi"
+
+&kscan {
+ events = <ZMK_MOCK_PRESS(0,1,10) ZMK_MOCK_PRESS(0,0,10) ZMK_MOCK_RELEASE(0,0,10) ZMK_MOCK_RELEASE(0,1,10)>;
+}; \ No newline at end of file
diff --git a/app/tests/momentary-layer/behavior_keymap.dtsi b/app/tests/momentary-layer/behavior_keymap.dtsi
new file mode 100644
index 0000000..34c445c
--- /dev/null
+++ b/app/tests/momentary-layer/behavior_keymap.dtsi
@@ -0,0 +1,28 @@
+#include <dt-bindings/zmk/keys.h>
+#include <behaviors.dtsi>
+#include <dt-bindings/zmk/kscan-mock.h>
+
+/ {
+ keymap {
+ compatible = "zmk,keymap";
+ label ="Default keymap";
+
+ default_layer {
+ bindings = <
+ &kp B &mo 1
+ &kp D &kp G>;
+ };
+
+ lower_layer {
+ bindings = <
+ &cp M_NEXT &trans
+ &kp L &kp J>;
+ };
+
+ raise_layer {
+ bindings = <
+ &kp W &kp U
+ &kp X &kp M>;
+ };
+ };
+};
diff --git a/app/tests/momentary-layer/early-key-release/events.patterns b/app/tests/momentary-layer/early-key-release/events.patterns
new file mode 100644
index 0000000..bd7b488
--- /dev/null
+++ b/app/tests/momentary-layer/early-key-release/events.patterns
@@ -0,0 +1,2 @@
+s/.*hid_listener_keycode/kp/p
+s/.*mo_keymap_binding/mo/p \ No newline at end of file
diff --git a/app/tests/momentary-layer/early-key-release/keycode_events.snapshot b/app/tests/momentary-layer/early-key-release/keycode_events.snapshot
new file mode 100644
index 0000000..474eef7
--- /dev/null
+++ b/app/tests/momentary-layer/early-key-release/keycode_events.snapshot
@@ -0,0 +1,4 @@
+kp_pressed: usage_page 0x07 keycode 0x05
+mo_pressed: position 1 layer 1
+kp_released: usage_page 0x07 keycode 0x05
+mo_released: position 1 layer 1
diff --git a/app/tests/momentary-layer/early-key-release/native_posix.keymap b/app/tests/momentary-layer/early-key-release/native_posix.keymap
new file mode 100644
index 0000000..e7628c0
--- /dev/null
+++ b/app/tests/momentary-layer/early-key-release/native_posix.keymap
@@ -0,0 +1,8 @@
+#include <dt-bindings/zmk/keys.h>
+#include <behaviors.dtsi>
+#include <dt-bindings/zmk/kscan-mock.h>
+#include "../behavior_keymap.dtsi"
+
+&kscan {
+ events = <ZMK_MOCK_PRESS(0,0,10) ZMK_MOCK_PRESS(0,1,10) ZMK_MOCK_RELEASE(0,0,10) ZMK_MOCK_RELEASE(0,1,10)>;
+}; \ No newline at end of file
diff --git a/app/tests/momentary-layer/early-key-release/pending b/app/tests/momentary-layer/early-key-release/pending
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/app/tests/momentary-layer/early-key-release/pending
diff --git a/app/tests/momentary-layer/normal/events.patterns b/app/tests/momentary-layer/normal/events.patterns
new file mode 100644
index 0000000..bd7b488
--- /dev/null
+++ b/app/tests/momentary-layer/normal/events.patterns
@@ -0,0 +1,2 @@
+s/.*hid_listener_keycode/kp/p
+s/.*mo_keymap_binding/mo/p \ No newline at end of file
diff --git a/app/tests/momentary-layer/normal/keycode_events.snapshot b/app/tests/momentary-layer/normal/keycode_events.snapshot
new file mode 100644
index 0000000..9dc6101
--- /dev/null
+++ b/app/tests/momentary-layer/normal/keycode_events.snapshot
@@ -0,0 +1,4 @@
+mo_pressed: position 1 layer 1
+kp_pressed: usage_page 0x0c keycode 0xb5
+kp_released: usage_page 0x0c keycode 0xb5
+mo_released: position 1 layer 1
diff --git a/app/tests/momentary-layer/normal/native_posix.keymap b/app/tests/momentary-layer/normal/native_posix.keymap
new file mode 100644
index 0000000..7f73690
--- /dev/null
+++ b/app/tests/momentary-layer/normal/native_posix.keymap
@@ -0,0 +1,8 @@
+#include <dt-bindings/zmk/keys.h>
+#include <behaviors.dtsi>
+#include <dt-bindings/zmk/kscan-mock.h>
+#include "../behavior_keymap.dtsi"
+
+&kscan {
+ events = <ZMK_MOCK_PRESS(0,1,10) ZMK_MOCK_PRESS(0,0,10) ZMK_MOCK_RELEASE(0,0,10) ZMK_MOCK_RELEASE(0,1,10)>;
+}; \ No newline at end of file
diff --git a/app/tests/none/behavior_keymap.dtsi b/app/tests/none/behavior_keymap.dtsi
new file mode 100644
index 0000000..0a4f7cb
--- /dev/null
+++ b/app/tests/none/behavior_keymap.dtsi
@@ -0,0 +1,22 @@
+#include <dt-bindings/zmk/keys.h>
+#include <behaviors.dtsi>
+#include <dt-bindings/zmk/kscan-mock.h>
+
+/ {
+ keymap {
+ compatible = "zmk,keymap";
+ label ="Default keymap";
+
+ default_layer {
+ bindings = <
+ &none &mo 1
+ &kp A &none>;
+ };
+
+ lower_layer {
+ bindings = <
+ &none &trans
+ &none &kp A>;
+ };
+ };
+};
diff --git a/app/tests/none/layered/events.patterns b/app/tests/none/layered/events.patterns
new file mode 100644
index 0000000..3c9d3f8
--- /dev/null
+++ b/app/tests/none/layered/events.patterns
@@ -0,0 +1 @@
+s/.*hid_listener_keycode/kp/p \ No newline at end of file
diff --git a/app/tests/none/layered/keycode_events.snapshot b/app/tests/none/layered/keycode_events.snapshot
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/app/tests/none/layered/keycode_events.snapshot
diff --git a/app/tests/none/layered/native_posix.keymap b/app/tests/none/layered/native_posix.keymap
new file mode 100644
index 0000000..59ea481
--- /dev/null
+++ b/app/tests/none/layered/native_posix.keymap
@@ -0,0 +1,8 @@
+#include <dt-bindings/zmk/keys.h>
+#include <behaviors.dtsi>
+#include <dt-bindings/zmk/kscan-mock.h>
+#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)>;
+}; \ No newline at end of file
diff --git a/app/tests/none/normal/events.patterns b/app/tests/none/normal/events.patterns
new file mode 100644
index 0000000..3c9d3f8
--- /dev/null
+++ b/app/tests/none/normal/events.patterns
@@ -0,0 +1 @@
+s/.*hid_listener_keycode/kp/p \ No newline at end of file
diff --git a/app/tests/none/normal/keycode_events.snapshot b/app/tests/none/normal/keycode_events.snapshot
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/app/tests/none/normal/keycode_events.snapshot
diff --git a/app/tests/none/normal/native_posix.keymap b/app/tests/none/normal/native_posix.keymap
new file mode 100644
index 0000000..94d7539
--- /dev/null
+++ b/app/tests/none/normal/native_posix.keymap
@@ -0,0 +1,8 @@
+#include <dt-bindings/zmk/keys.h>
+#include <behaviors.dtsi>
+#include <dt-bindings/zmk/kscan-mock.h>
+#include "../behavior_keymap.dtsi"
+
+&kscan {
+ events = <ZMK_MOCK_PRESS(0,0,10) ZMK_MOCK_RELEASE(0,0,10)>;
+}; \ No newline at end of file
diff --git a/app/tests/toggle-layer/behavior_keymap.dtsi b/app/tests/toggle-layer/behavior_keymap.dtsi
new file mode 100644
index 0000000..d2b41a9
--- /dev/null
+++ b/app/tests/toggle-layer/behavior_keymap.dtsi
@@ -0,0 +1,28 @@
+#include <dt-bindings/zmk/keys.h>
+#include <behaviors.dtsi>
+#include <dt-bindings/zmk/kscan-mock.h>
+
+/ {
+ keymap {
+ compatible = "zmk,keymap";
+ label ="Default keymap";
+
+ default_layer {
+ bindings = <
+ &kp B &tog 1
+ &kp D &kp G>;
+ };
+
+ lower_layer {
+ bindings = <
+ &cp M_NEXT &trans
+ &kp L &kp J>;
+ };
+
+ raise_layer {
+ bindings = <
+ &kp W &kp U
+ &kp X &kp M>;
+ };
+ };
+};
diff --git a/app/tests/toggle-layer/early-key-release/events.patterns b/app/tests/toggle-layer/early-key-release/events.patterns
new file mode 100644
index 0000000..397fef4
--- /dev/null
+++ b/app/tests/toggle-layer/early-key-release/events.patterns
@@ -0,0 +1,2 @@
+s/.*hid_listener_keycode/kp/p
+s/.*tog_keymap_binding/tog/p \ No newline at end of file
diff --git a/app/tests/toggle-layer/early-key-release/keycode_events.snapshot b/app/tests/toggle-layer/early-key-release/keycode_events.snapshot
new file mode 100644
index 0000000..3ac017c
--- /dev/null
+++ b/app/tests/toggle-layer/early-key-release/keycode_events.snapshot
@@ -0,0 +1,6 @@
+kp_pressed: usage_page 0x07 keycode 0x05
+tog_pressed: position 1 layer 1
+kp_released: usage_page 0x07 keycode 0x05
+tog_released: position 1 layer 1
+kp_pressed: usage_page 0x0c keycode 0xb5
+kp_released: usage_page 0x0c keycode 0xb5
diff --git a/app/tests/toggle-layer/early-key-release/native_posix.keymap b/app/tests/toggle-layer/early-key-release/native_posix.keymap
new file mode 100644
index 0000000..6b2b8f2
--- /dev/null
+++ b/app/tests/toggle-layer/early-key-release/native_posix.keymap
@@ -0,0 +1,9 @@
+#include <dt-bindings/zmk/keys.h>
+#include <behaviors.dtsi>
+#include <dt-bindings/zmk/kscan-mock.h>
+#include "../behavior_keymap.dtsi"
+
+&kscan {
+ events = <ZMK_MOCK_PRESS(0,0,10) ZMK_MOCK_PRESS(0,1,10) ZMK_MOCK_RELEASE(0,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/toggle-layer/early-key-release/pending b/app/tests/toggle-layer/early-key-release/pending
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/app/tests/toggle-layer/early-key-release/pending
diff --git a/app/tests/toggle-layer/normal/events.patterns b/app/tests/toggle-layer/normal/events.patterns
new file mode 100644
index 0000000..397fef4
--- /dev/null
+++ b/app/tests/toggle-layer/normal/events.patterns
@@ -0,0 +1,2 @@
+s/.*hid_listener_keycode/kp/p
+s/.*tog_keymap_binding/tog/p \ No newline at end of file
diff --git a/app/tests/toggle-layer/normal/keycode_events.snapshot b/app/tests/toggle-layer/normal/keycode_events.snapshot
new file mode 100644
index 0000000..42174cc
--- /dev/null
+++ b/app/tests/toggle-layer/normal/keycode_events.snapshot
@@ -0,0 +1,4 @@
+tog_pressed: position 1 layer 1
+tog_released: position 1 layer 1
+kp_pressed: usage_page 0x0c keycode 0xb5
+kp_released: usage_page 0x0c keycode 0xb5
diff --git a/app/tests/toggle-layer/normal/native_posix.keymap b/app/tests/toggle-layer/normal/native_posix.keymap
new file mode 100644
index 0000000..202c105
--- /dev/null
+++ b/app/tests/toggle-layer/normal/native_posix.keymap
@@ -0,0 +1,8 @@
+#include <dt-bindings/zmk/keys.h>
+#include <behaviors.dtsi>
+#include <dt-bindings/zmk/kscan-mock.h>
+#include "../behavior_keymap.dtsi"
+
+&kscan {
+ events = <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/transparent/behavior_keymap.dtsi b/app/tests/transparent/behavior_keymap.dtsi
new file mode 100644
index 0000000..d6c5e27
--- /dev/null
+++ b/app/tests/transparent/behavior_keymap.dtsi
@@ -0,0 +1,22 @@
+#include <dt-bindings/zmk/keys.h>
+#include <behaviors.dtsi>
+#include <dt-bindings/zmk/kscan-mock.h>
+
+/ {
+ keymap {
+ compatible = "zmk,keymap";
+ label ="Default keymap";
+
+ default_layer {
+ bindings = <
+ &trans &mo 1
+ &kp A &none>;
+ };
+
+ lower_layer {
+ bindings = <
+ &trans &trans
+ &trans &kp A>;
+ };
+ };
+};
diff --git a/app/tests/transparent/layered/events.patterns b/app/tests/transparent/layered/events.patterns
new file mode 100644
index 0000000..3c9d3f8
--- /dev/null
+++ b/app/tests/transparent/layered/events.patterns
@@ -0,0 +1 @@
+s/.*hid_listener_keycode/kp/p \ No newline at end of file
diff --git a/app/tests/transparent/layered/keycode_events.snapshot b/app/tests/transparent/layered/keycode_events.snapshot
new file mode 100644
index 0000000..d0bd245
--- /dev/null
+++ b/app/tests/transparent/layered/keycode_events.snapshot
@@ -0,0 +1,2 @@
+kp_pressed: usage_page 0x07 keycode 0x04
+kp_released: usage_page 0x07 keycode 0x04
diff --git a/app/tests/transparent/layered/native_posix.keymap b/app/tests/transparent/layered/native_posix.keymap
new file mode 100644
index 0000000..59ea481
--- /dev/null
+++ b/app/tests/transparent/layered/native_posix.keymap
@@ -0,0 +1,8 @@
+#include <dt-bindings/zmk/keys.h>
+#include <behaviors.dtsi>
+#include <dt-bindings/zmk/kscan-mock.h>
+#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)>;
+}; \ No newline at end of file
diff --git a/app/tests/transparent/normal/events.patterns b/app/tests/transparent/normal/events.patterns
new file mode 100644
index 0000000..3c9d3f8
--- /dev/null
+++ b/app/tests/transparent/normal/events.patterns
@@ -0,0 +1 @@
+s/.*hid_listener_keycode/kp/p \ No newline at end of file
diff --git a/app/tests/transparent/normal/keycode_events.snapshot b/app/tests/transparent/normal/keycode_events.snapshot
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/app/tests/transparent/normal/keycode_events.snapshot
diff --git a/app/tests/transparent/normal/native_posix.keymap b/app/tests/transparent/normal/native_posix.keymap
new file mode 100644
index 0000000..94d7539
--- /dev/null
+++ b/app/tests/transparent/normal/native_posix.keymap
@@ -0,0 +1,8 @@
+#include <dt-bindings/zmk/keys.h>
+#include <behaviors.dtsi>
+#include <dt-bindings/zmk/kscan-mock.h>
+#include "../behavior_keymap.dtsi"
+
+&kscan {
+ events = <ZMK_MOCK_PRESS(0,0,10) ZMK_MOCK_RELEASE(0,0,10)>;
+}; \ No newline at end of file