Commit 35b9d14
CI: isolate re-init-heavy embed fixtures; drop obsolete TestDomainReload
CPython 3.13+ does not fully support repeated Py_Finalize/Py_Initialize.
The embed-test suite re-initializes the interpreter per fixture (~40 cycles
in one process); on 3.13/3.14 the accumulation eventually corrupts
interpreter state and a later Py_Initialize aborts with "Failed to import
encodings module" (strace confirms the file opens fine - it is interpreter
state, not the filesystem). The crash point is nondeterministic and only
appears in the full suite; each fixture passes in isolation.
Run the re-init-heavy fixtures (TestPythonEngineProperties, pyinitialize,
TestFinalizer) in a separate test process so no single process accumulates
enough re-inits to corrupt. This mirrors upstream's NeedsReinit separation.
TestDomainReload is excluded entirely: AppDomain reload is not supported on
modern .NET (single-domain), so those tests are obsolete.
Verified locally: full embed suite green on 3.11, 3.13 and 3.14 with the
split (bulk 895-896 / re-init batch 14, 0 failures); no regression.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent 67e0f80 commit 35b9d14
1 file changed
Lines changed: 11 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
51 | 58 | | |
52 | | - | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
53 | 63 | | |
54 | 64 | | |
55 | 65 | | |
| |||
0 commit comments