Stop skipping six tests whose reason no longer reproduces - #8583
Conversation
Three skips in test_array say "Hangs", one in test_marshal carries no reason at all, and two in test_thread say "panic" on Linux. None of the six does any of that now. Each ran three to five times in a row and passed, and the array trio was also checked case by case against CPython 3.14, including the mutation-during-index-conversion shapes the tests were written for. The neighbouring markers that say "Flaky", "Flakey on CI" and "flaky EOFError" are left alone. One green run says nothing about those. Assisted-by: Claude Code:claude-opus-5
|
Important Review skippedReview was skipped due to path filters ⛔ Files ignored due to path filters (3)
CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including ⚙️ Run configurationConfiguration used: Path: .coderabbit.yml Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
📦 Library DependenciesThe following Lib/ modules were modified. Here are their dependencies: [x] test: cpython/Lib/test/test_marshal.py (TODO: 4) dependencies: dependent tests: (25 tests)
[x] test: cpython/Lib/test/test_array.py dependencies: dependent tests: (102 tests)
[x] test: cpython/Lib/test/test_thread.py (TODO: 1) dependencies: dependent tests: (14 tests) Legend:
|
Summary
Six tests are skipped for something that no longer happens.
Lib/test/test_array.pytest_setitem_use_after_clear_with_int_data,test_setitem_use_after_shrink_with_int_data,test_setitem_use_after_clear_with_float_dataTODO: RUSTPYTHON; HangsLib/test/test_marshal.pytestRecursionTODO: RUSTPYTHONLib/test/test_thread.pytest_start_duplicate_handle,test_start_with_none_handleTODO: RUSTPYTHON; panic, on Linux onlyWhat was measured
The
test_arraythree coverarray.__setitem__when the index conversion mutates the array, from python/cpython#142555. Before unskipping them I ran their bodies straight against CPython 3.14, one process each with a timeout, plus four shapes the tests do not cover:clear()in__index__, thenvictim[1] = idxIndexError,len0IndexError,len0pop()in__index__IndexError,len1IndexError,len1clear()in__float__on a'd'arrayIndexError,len0IndexError,len0append()in__index__[1, 0, 3, 9][1, 0, 3, 9]clear()in__index__on a readIndexErrorIndexErrorclear()in__index__on a slice assignment[7][7]clear()in__index__ondelIndexErrorIndexErrorNothing hangs, and the exception is the one the tests assert on. The exception text differs (
array assignment index out of rangeagainstassignment index out of range), which the tests do not look at, and which belongs to #7993 rather than here.testRecursionmarshals a self-referential dict and list throughhelper3. It passes.The two in
test_threadexercisethread.start_joinable_threadwith a reused_ThreadHandleand withhandle=None. They already ran on macOS and Windows; only the Linux skip is dropped, and they passed there five times in a row.I did not track down which change fixed each one, so the claim here is only that the stated reason does not reproduce on current
main.Runs
Each module ran three times end to end after the markers came off, and the two thread tests ran five times:
scripts/check_redundant_patches.pyis clean on all three files.Left alone
test_logginghas two markers readingFlakyandflaky EOFError, andtest_thread.test__countreadsFlakey on CI. All three passed here, and that is not evidence about a flake, so they stay as they are.