spiegel-keyman/common/core/desktop/tests/unit/kmx
2021-07-19 04:24:35 +10:00
..
000 - null keyboard.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
000 - null keyboard.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
001 - basic input UnicodeI.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
001 - basic input UnicodeI.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
002 - basic input Unicode.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
002 - basic input Unicode.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
003 - nul.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
003 - nul.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
004 - basic input (shift 2).kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
004 - basic input (shift 2).kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
005 - nul with initial context.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
005 - nul with initial context.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
006 - vkey input (shift ctrl).kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
006 - vkey input (shift ctrl).kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
007 - vkey input (ctrl alt).kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
007 - vkey input (ctrl alt).kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
008 - vkey input (ctrl alt 2).kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
008 - vkey input (ctrl alt 2).kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
012 - ralt.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
012 - ralt.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
013 - deadkeys.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
013 - deadkeys.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
014 - groups and virtual keys.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
014 - groups and virtual keys.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
015 - ralt 2.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
015 - ralt 2.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
017 - space mnemonic kbd.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
017 - space mnemonic kbd.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
018 - nul testing.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
018 - nul testing.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
019 - multiple deadkeys.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
019 - multiple deadkeys.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
020 - deadkeys and backspace.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
020 - deadkeys and backspace.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
021 - options.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
021 - options.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
022 - options with preset.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
022 - options with preset.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
023 - options with save.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
023 - options with save.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
024 - options with save and preset.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
024 - options with save and preset.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
025 - options with reset.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
025 - options with reset.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
026 - system stores.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
026 - system stores.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
027 - system stores 2.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
027 - system stores 2.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
028 - smp.kmn fix(common): add test case and fix smp bugs 2021-01-29 16:05:07 +11:00
028 - smp.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
029 - beep.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
029 - beep.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
030 - multiple groups.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
030 - multiple groups.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
031 - caps lock.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
031 - caps lock.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
032 - caps control.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
033 - caps always off.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
034 - options double set reset.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
034 - options double set reset.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
035 - options double set staged.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
035 - options double set staged.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
036 - options - double reset staged.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
036 - options - double reset staged.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
037 - options - double reset.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
037 - options - double reset.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
038 - punctkeys.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
038 - punctkeys.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
039 - generic ctrlalt.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
039 - generic ctrlalt.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
040 - long context.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
040 - long context.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
041 - long context and deadkeys.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
041 - long context and deadkeys.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
042 - long context and split deadkeys.kmn refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
042 - long context and split deadkeys.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
043 - output and keystroke.kmn chore(common): add tests for Keyman Core 2020-05-08 16:53:53 +10:00
043 - output and keystroke.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
044 - if and context.kmn fix(common/core): context mismatch with if and deadkey automatic test 2021-01-18 10:22:59 +11:00
044 - if and context.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
045 - deadkey and context.kmn fix(common/core): context mismatch with if and deadkey automatic test 2021-01-18 10:22:59 +11:00
045 - deadkey and context.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
046 - deadkey and contextex.kmn fix(common/core): context mismatch with if and deadkey automatic test 2021-01-18 10:22:59 +11:00
046 - deadkey and contextex.kmx chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
kmp.json refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00
kmx.cpp refactor(common/core/desktop): Fix file and class names 2021-07-07 15:25:15 +02:00
meson.build chore(common): kmx fixtures need debug symbols 2021-07-08 09:43:19 +10:00
README.md docs(common): Add readme for unit tests 2021-03-02 16:55:22 +01:00

KMX unit tests

This directory contains unit tests that test the KMX processing.

The driver (kmx.cpp) loads and executes the tests. Each test consist of a Keyman keyboard source file (0*.kmn) and the compiled KMX keyboard. The source file contains rules and defines the setup, input and expected results.

Defining tests in the .kmn file

The top of the file contains comments that define the setup, input and expected results. Following the comments are the normal rules of a Keyman keyboard.

Setup

  • description: this is just for commenting what we test here
c Description: Tests Caps Lock env set
  • option: allows to put the system in a defined state. The example below turns caps-lock off.
c option: &capsLock=0
  • context: allows to setup a string which serves as context
c context:

Input

  • keys: defines one or more virtual keys that will be processed one after the other
c keys: [K_1][K_CAPS][K_2][SHIFT K_3][K_4][K_CAPS][K_5][K_CAPS][K_6]

Expected Result

  • expected: the resulting string of processing the input keys. In the example below each key press is expected to output the string 'pass.'.
c expected: pass.pass.pass.pass.pass.pass.

Running the tests

All tests can be run at once with meson test.

Alternatively it's possible to run a single test with:

cd common/core/desktop
build/tests/unit/kmx/kmx 'tests/unit/kmx/038 - punctkeys.kmn' 'tests/unit/kmx/038 - punctkeys.kmx'