spiegel-keyman/linux/ibus-keyman/tests/README.md
Eberhard Beilharz 4f38d527b4
Apply suggestions from code review
Co-authored-by: Markus Greiner <90342882+Markus-SWAG@users.noreply.github.com>
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-09-30 11:01:31 +02:00

1.8 KiB

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_000___null_keyboard k_005___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_001___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