Add a MinGW fixture and isolated D-Bus runner that stall WM_GETOBJECT or
accessible text-property retrieval for eight seconds. While the provider
is blocked, a separate foreground editor must deliver repeated character
events and native button feedback without changing its text, caret, or
selection. Reject stale focus after the blocked provider returns and verify
normal WM_QUIT shutdown completes before a second provider stall ends.
Cover both 64-bit and 32-bit applications, ordinary property-getter stalls,
background focus events that must not query providers or retire foreground
feedback, and owned nonactivating accessible popups that preserve native
focus. Support the alternate Orca recording endpoint as well as Cthulhu.
Use disposable Wine prefixes and recording services so these checks do not
send speech or braille to the running reader. Compile fixtures with the
matching MinGW C++ compiler and clean up the test processes and prefix's
Wine server when each run finishes.
Validation, run sequentially on a private dummy Xorg display (:94):
- cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=winelib-toolchain.cmake
- cmake --build build --parallel
- ctest --test-dir build --output-on-failure (4/4 passed)
- python3 tests/event_stall_integration.py --build-dir build, repeated with
no extra option, --32-bit, --getter, --background, --popup, --reader orca
(all six runs passed)
- python3 tests/menu_integration.py --build-dir build --fixture <fixture>,
for menu, edit, controls, and list, each with and without --32-bit
(all eight runs passed)
- git diff --check (passed)
Xvfb is not installed, so use the installed unprivileged Xorg binary and
dummy driver for isolation. These checks record D-Bus output and native
fixture state; installed-helper MUSHclient, physical input, audible speech,
and physical braille acceptance remain separate live checks.