Skip to content

Conversation

@paddymul
Copy link
Collaborator

Summary

  • Skip all mp_timeout_decorator pytest tests that spawn forkserver subprocesses, removing ~11s from the pytest suite
  • Add a standalone script (tests/unit/file_cache/run_mp_timeout_tests.py) that runs the same 14 checks in a single invocation with less per-fork overhead
  • Each skipped pytest stub documents which script check covers it and how to run it

Timing comparison

Runner Checks run Wall time
pytest (original) 9 (5 already skipped) ~11.4s
standalone script 14 (all checks) ~14.9s
pytest (after this PR) 1 inline + 14 skipped ~0.08s

The standalone script runs more checks than the original pytest suite did (including the previously-skipped diagnostic tests) while keeping each forked child lighter. pytest-xdist was tried previously and does not help because the bottleneck is per-fork overhead, not test parallelism.

Test plan

  • python tests/unit/file_cache/run_mp_timeout_tests.py — 14 passed
  • pytest tests/unit/file_cache/mp_timeout_decorator_test.py — 1 passed, 14 skipped
  • ruff clean

🤖 Generated with Claude Code

paddymul and others added 2 commits January 30, 2026 10:59
Skip all mp_timeout_decorator pytest tests (which spawn forkserver
subprocesses) and provide a standalone script that runs the same 14
checks in a single invocation with less memory overhead.

pytest (original, 9 non-skipped): ~11.4s wall
standalone script (all 14 checks): ~14.9s wall

The standalone script runs more checks (14 vs 9 non-skipped) while
keeping each fork lighter. The pytest tests remain as skipped stubs
with pointers to the script and the corresponding pytest invocation.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Remove 4 diagnostic checks (crash_exit, polars_crash,
polars_unserializable, unpicklable_exception) and sys_exit that
were not part of the original pytest suite. Renumber checks 1-10
to match the 10 original non-skipped tests exactly.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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.

2 participants