Improved self-cleaning tests.

This commit is contained in:
Storm Dragon committed 2026-10-15 13:12:15 -04:00
1 parent 77db0b83ab
commit e3de71e594
14 files changed
+487 -39

No files matched your search

+41
View File
@@ -1,5 +1,46 @@
# Wine control integration
## Temporary files and failure inspection
Wine CTests and the integration scripts below use fresh prefixes under the
temporary directory (`/tmp` by default). Successful runs stop their Wine
servers and remove their temporary files. **Failures, timeouts and ordinary
interruptions retain the original files by default**, with the directory path
printed before the test starts and again at exit. This preserves a one-off
failure for inspection without requiring a second reproduction. Retention
keeps files and registry state; test processes are still stopped.
Console output and fixture `.log` files are saved under
`<build-dir>/Testing/WineAccessLogs/`, outside the disposable prefix. These logs
remain even when temporary files are removed. CTest also keeps its usual
`Testing/Temporary/LastTest.log` report. Saved logs need occasional maintenance;
review them for private text before sharing.
To retain successful runs too, or explicitly clean a failed run:
```sh
xvfb-run -a python3 tests/menu_integration.py --build-dir build --keep
xvfb-run -a python3 tests/menu_integration.py --build-dir build --clean-on-failure
WINE_ACCESS_TEST_KEEP=1 xvfb-run -a ctest --test-dir build -V
WINE_ACCESS_TEST_KEEP_ON_FAILURE=0 xvfb-run -a ctest --test-dir build --output-on-failure
```
Each run requires at least 1024 MiB free on the temporary filesystem before
starting. If retained failures accumulate, the next run stops with an explicit
space error; it never deletes earlier evidence automatically. Remove retained
directories manually after inspecting them. `TMPDIR` can select another
filesystem, and `WINE_ACCESS_TEST_MIN_FREE_MIB` can adjust the space guard for
larger fixtures. CTests run serially because their fixtures share one display.
A teardown or log-preservation failure always retains the temporary files.
SIGKILL, machine shutdown and an outer test-runner kill cannot run Python
cleanup; occasional `/tmp` cleanup remains useful.
Check the runner without Wine:
```sh
python3 tests/wine_test_environment_test.py
```
## UIA notifications
UIA notification routing uses the actual native application hooks and a private