This change adds integration/regression tests for ibus-keyman. It
re-uses the unit tests that we have for core.
Also modifies one test so that the context doesn't use characters
used in the keyboard. This makes it easier to setup in ibus-keyman
tests.
While adding nested subdirs to `meson.build` works it still adds the
directory with the wrong path separator on Windows. This suddenly
caused problems when building.
This change adds package templates to the test folder and compiles
a keyboard package for each of the test keyboards. These
packages are useful for manual testing in addition to the automated
tests.
The copy keyword inside of configure_file got added in meson 0.47.
However, we still support Bionic which comes with meson 0.45. This
change adds a workaround.
This change generates kmp.json based on the test files specified in
meson.build. It will also generate .kmx files in the build directory
and copies the .kmn files to it as well.
Fixes#5695.
When the debugger is in single-step mode, reflects the value of option
stores at the time of the change rather than at the beginning of the
batch.
This fixes typing `n>` with sil_ipa keyboard which no longer output
the expected `ŋ` because pressing the shift key reset the context.
For modifier key presses we now exit `KMX_ProcessEvent::ProcessEvent`
early.
This change also removes a redundant line from engine.c. Clearing
the context happens in `reset_context()` again if necessary.
Fixes#5591.
Fixes#5465.
Fixes#5561.
If a non-BMP Unicode char was emitted into the internal context, it was
being truncated to a WORD, which caused data loss for multi-group
keyboards.
Includes an update to a unit test to validate this fix.
Fixes#5488.
This updates Keyman Core, corresponding tests, and Keyman Engine for
Linux to support deletion of markers through an action, ensuring that
the action queue does not desynchronize with the context.
Adds some tests for Keyman Core for debugging, verifying contents of
the action list after every keystroke in the test.
Also refactors some of the test helper files to make it easier to
diagnose failing tests and share helper functions.
Adds an action_index to each debug event (not all debug events
need it). This allows the debugger to partially execute a rule
including the possibility of multiple updates to context.