spiegel-keyman/linux/ibus-keyman/tests
Marc Durdin d61e5bbb18 refactor(core): clean up unit tests
Consolidate test frameworks and cleanup, including:
* all tests use Google Test
* reorganize folders, esp. kmnkbd -> api
* move all api tests into api folder
* replace references to test_assert or test_color with gtest equivalents
* leverage gtest patterns to remove boilerplate code
* dramatically simplify meson.build files and localize variables
* move shared helper code into helpers/ folder
* make test names unique and add gtest protocol for reporting back to
  teamcity

Fixes:
* CLDR test keyboards had invalid unicodeset escapes (needs to be raised
  upstream also) - was not failing tests because files were not loading
  but returning success

Test-bot: skip
2026-04-28 12:17:44 +02:00
..
dbus-test-server maint(linux): fix stopping of test server 2025-07-25 15:53:15 +02:00
scripts fix(linux): issues when running ./build.sh test:linux, improving ibus-daemon stop after review 2026-01-15 11:09:20 +01:00
DbusTestHelper.cpp refactor(linux): move defines to common header files 2025-07-17 19:41:26 +02:00
DbusTestHelper.h refactor(linux): changes to get integration tests working 2025-02-14 17:30:42 +01:00
EventSource.cpp refactor(linux): changes to get integration tests working 2025-02-14 17:30:42 +01:00
EventSource.h refactor(linux): changes to get integration tests working 2025-02-14 17:30:42 +01:00
ibusimcontext.c refactor(linux): changes to get integration tests working 2025-02-14 17:30:42 +01:00
ibusimcontext.h chore(linux): change SIL International to SIL Global 2024-12-10 10:26:44 +01:00
KeyHandling.cpp refactor(linux): changes to get integration tests working 2025-02-14 17:30:42 +01:00
KeyHandling.h refactor(linux): changes to get integration tests working 2025-02-14 17:30:42 +01:00
meson.build refactor(core): clean up unit tests 2026-04-28 12:17:44 +02:00
README.md test(common): better group baseline tests 2025-12-15 18:12:01 +01:00
testfixture.cpp Merge branch 'epic/web-core' into auto/A19S20-merge-master-into-web-core 2026-01-16 08:40:12 +01:00
testfixture.h refactor(linux): move defines to common header files 2025-07-17 19:41:26 +02:00
testmodule.c chore(linux): Fix warnings 2023-01-26 16:58:27 +01:00
testmodule.h chore(linux): Fix warnings 2023-01-26 16:58:27 +01:00

ibus-keyman integration tests

The ibus-keyman integration tests run the tests defined in common/test/keyboards/baseline. The tests run in a separate Xephyr session. Any dconf settings that have to be set during the tests are stored in ~/.config/glib-2.0/settings/keyfile.

Running tests

The tests get run as part of building ibus-keyman, more specifically when running build.sh test.

Run all tests

All tests can be run with the test script:

scripts/run-tests.sh

Run specific tests

To run a single test you pass the testname (as found in common/test/keyboards/baseline). Multiple tests should be separated by space.

scripts/run-tests.sh -- k_0000___null_keyboard k_0002___nul_with_initial_context

Debugging tests

This is most easily done by running the tests in a VM and then remote debugging into the VM. The VM should be the same Linux version as the host, and the Keyman repo should be shared with the VM through a shared folder.

Then you can start the run-tests.sh script on the VM with the --remote-debug option. This will start the background services and then start a GDB session waiting for the debugger to connect.

For example:

linux/ibus-keyman/tests/scripts/run-tests.sh --remote-debug \
  --no-surrounding-text --no-wayland -- k_0100___basic_input_unicodei

On the host, you can then attach to the VM. See the Attach to gdbserver (ibus-keyman integration tests) configuration in docs/settings/linux/launch.json for a sample configuration in vscode. You'll have to adjust the IP address to match the VM which the run-tests.sh script will output.

Manually running tests in TeamCity

To run the tests manually in TeamCity, you'll have to set an environment variable TEAMCITY_GIT_PATH (the actual value doesn't matter):

export TEAMCITY_GIT_PATH=/something