add focused unit and map checks

This commit is contained in:
2026-08-11 19:35:11 +09:00
parent 9dc116a035
commit 42823420ab
18 changed files with 1326 additions and 9 deletions

View File

@@ -7,6 +7,7 @@ Inspired by 9front's ktrans. Threads communicate via CSP channels.
## Dependencies
- plan9port
- Python 3 (for generated-map checks)
- dbus-1
- wayland-client, libxkbcommon (for Wayland support)
- gtk+-3.0 (optional, for GTK IM module)
@@ -17,6 +18,21 @@ Inspired by 9front's ktrans. Threads communicate via CSP channels.
cd xim && make # XIM adapter
cd gtk && make docker && make install # GTK IM module
Unit tests use the sibling `cutest` Git repository as a submodule and do not
require the Wayland, D-Bus, GTK, or X11 development packages. Repository
mirrors must provide the same sibling; initialize it after cloning with
`git submodule update --init`:
make check # generated map + unit tests
make test TESTARGS=hangul # filtered unit tests only
make verify-map # generated-map check only
The suite covers the fixed-size UTF-8 string, hash table, trie fixtures,
Japanese/Hangul/Telex state transitions, dictionary candidates, engine
selection state, and the byte-stream IPC path. Tests use explicit case tables,
boundary values, and small regressions for repaired core contracts. GUI
protocol stacks are outside this suite and require separate integration checks.
## Run
./strans map font &
@@ -60,10 +76,10 @@ Tab or Enter to commit.
Threads communicate via CSP channels:
- [imthread](strans.c#L271): keystroke processing, transliteration
- [dictthread](dict.c#L38): dictionary lookup
- [drawthread](win.c#L133): preedit window rendering
- [srvthread](srv.c#L42): IPC via unix socket
- [imthread](strans.c): keystroke processing, transliteration
- [dictthread](dict.c): dictionary lookup
- [drawthread](win.c): preedit window rendering
- [srvthread](srv.c): IPC via unix socket
- [ibusthread](ibus.c): IBus D-Bus endpoint for GLFW/kitty
- [waylandthread](wayland.c): Wayland input-method-v2 + virtual-keyboard-v1