Skip to content

Tests: launch fake helpers through a stable script - #97

Merged
emaspa merged 1 commit into
mainfrom
fix/stable-test-helpers
Sep 12, 2026
Merged

Tests: launch fake helpers through a stable script#97
emaspa merged 1 commit into
mainfrom
fix/stable-test-helpers

Conversation

@emaspa

@emaspa emaspa commented Sep 12, 2026

Copy link
Copy Markdown
Owner

Changes

Fixes the post-merge CI failure from #96, run https://github.com/emaspa/openxlr/actions/runs/34709759964.

The actual startup error was Linux ETXTBSY, Text file busy. While a test writes an executable script, another thread can fork and temporarily inherit its writable handle. Exec then refuses the script even after the writing thread closed its own handle.

  • Use a build-owned executable launcher and keep each fake helper's body in a separate data file.
  • Convert the five test-helper factories to the shared helper. No retries, sleeps or relaxed assertions.
  • Preserve the operating system's startup reason in plugin-install diagnostics instead of reducing it to an unspecified failure.
  • Document the fake-helper convention.

Verification

  • A/B stress: old pattern produced 5,265 ETXTBSY failures in 181,758 executions; the stable launcher produced none in 106,051.
  • The old pattern reproduced the real suite failure once in 10 runs. The fixed suite passed 13 consecutive runs, 511 tests each.
  • Independent combined build and suite passed after integration with mono support: 0 warnings/errors, 530 tests passed, 3 opt-in desktop tests skipped.
  • The launcher passes shellcheck.

No production retry policy, audio behavior, version or release changes.

Parallel process starts can inherit a newly written executable handle and make Linux refuse exec with Text file busy. Keep the executable launcher build-owned and write each fake helper body as data instead.

Preserve operating-system startup errors in plugin installation diagnostics rather than returning an unspecified failure.
@emaspa
emaspa merged commit be4eaca into main Sep 12, 2026
4 checks passed
@emaspa
emaspa deleted the fix/stable-test-helpers branch September 12, 2026 19:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant