Recover Rime faults, persist window modes and fix GPU allocation
This commit is contained in:
1 parent
8e9a5838ab
commit
6f34fd080f
27 files changed
+1260
-34
No files matched your search
@@ -47,11 +47,11 @@ class NativeRimeTest(unittest.TestCase):
|
||||
(preview.DATA / name).write_bytes(p.stdout)
|
||||
|
||||
clear()
|
||||
baseline_windows={window["id"] for window in preview.windows()}
|
||||
probe("--keys", "nihao")
|
||||
expect("") # Preedit is displayed, not prematurely committed.
|
||||
screenshot("candidate-normal.png")
|
||||
self.assertLessEqual({window["app_id"] for window in preview.windows()},
|
||||
{"dev.ferese.RimeValidation", "io.github.lgse.Strata"})
|
||||
self.assertEqual({window["id"] for window in preview.windows()},baseline_windows)
|
||||
probe("--keys", " ")
|
||||
expect("你好")
|
||||
results.append("native GTK preedit, candidate popup and space commit")
|
||||
@@ -145,18 +145,19 @@ class NativeRimeTest(unittest.TestCase):
|
||||
clear()
|
||||
probe("--keys", "nihao")
|
||||
compositor_pid = preview.prop(preview.MAIN, "MainPID")
|
||||
old_ime_pid = preview.prop(preview.IME, "MainPID")
|
||||
subprocess.run(["systemctl", "--user", "kill", "--signal=KILL", preview.IME], check=True)
|
||||
preview.wait_for(lambda: preview.prop(preview.IME, "ActiveState") != "active", "IME did not terminate")
|
||||
preview.wait_for(lambda: preview.prop(preview.IME, "MainPID") not in ("", "0", old_ime_pid)
|
||||
and preview.prop(preview.IME, "ActiveState") == "active", "IME did not automatically recover")
|
||||
self.assertEqual(preview.prop(preview.MAIN, "ActiveState"), "active")
|
||||
self.assertEqual(preview.prop(preview.MAIN, "MainPID"), compositor_pid)
|
||||
probe("--keys", "abc")
|
||||
expect("abc")
|
||||
preview.wait_for(lambda: '"event":"ready"' in preview.run(
|
||||
["journalctl", "--user", f"_PID={preview.prop(preview.IME, 'MainPID')}", "--no-pager", "-o", "cat"]), "Recovered IME was not ready")
|
||||
time.sleep(.3)
|
||||
screenshot("ime-crash-desktop-survives.png")
|
||||
preview.start_ime()
|
||||
time.sleep(.2)
|
||||
probe("--keys", "nihao ")
|
||||
expect("abc你好")
|
||||
results.append("IME SIGKILL leaves desktop alive; ASCII works; restarted IME commits Chinese")
|
||||
expect("你好")
|
||||
results.append("IME SIGKILL automatically restarts with desktop alive and Chinese restored")
|
||||
|
||||
# The validation driver must refuse the real host before creating a keyboard.
|
||||
host = Path(os.environ.get("WAYLAND_DISPLAY", "wayland-0"))
|
||||
|
||||
Reference in new issue
Block a user