mirror of
https://github.com/python/cpython.git
synced 2025-09-25 01:43:11 +00:00
gh-76785: Fix Windows Refleak in test_interpreters (gh-117913)
gh-117662 introduced some refleaks, or, rather, exposed some existing refleaks. The leaks are coming when test.support.os_helper is imported in a "legacy" interpreter. I've updated test.test_interpreters.utils to avoid importing os_helper, which fixes the leaks. I'll address the root cause separately.
This commit is contained in:
parent
757891ee8a
commit
3831144f9c
2 changed files with 7 additions and 6 deletions
|
@ -174,9 +174,6 @@ class GetCurrentTests(TestBase):
|
||||||
|
|
||||||
@requires_test_modules
|
@requires_test_modules
|
||||||
def test_created_with_capi(self):
|
def test_created_with_capi(self):
|
||||||
last = 0
|
|
||||||
for id, *_ in _interpreters.list_all():
|
|
||||||
last = max(last, id)
|
|
||||||
expected = _testinternalcapi.next_interpreter_id()
|
expected = _testinternalcapi.next_interpreter_id()
|
||||||
text = self.run_temp_from_capi(f"""
|
text = self.run_temp_from_capi(f"""
|
||||||
import {interpreters.__name__} as interpreters
|
import {interpreters.__name__} as interpreters
|
||||||
|
|
|
@ -17,10 +17,13 @@ import unittest
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
from test import support
|
from test import support
|
||||||
from test.support import os_helper
|
|
||||||
from test.support import import_helper
|
|
||||||
|
|
||||||
_interpreters = import_helper.import_module('_xxsubinterpreters')
|
# We would use test.support.import_helper.import_module(),
|
||||||
|
# but the indirect import of test.support.os_helper causes refleaks.
|
||||||
|
try:
|
||||||
|
import _xxsubinterpreters as _interpreters
|
||||||
|
except ImportError as exc:
|
||||||
|
raise unittest.SkipTest(str(exc))
|
||||||
from test.support import interpreters
|
from test.support import interpreters
|
||||||
|
|
||||||
|
|
||||||
|
@ -399,6 +402,7 @@ class TestBase(unittest.TestCase):
|
||||||
def temp_dir(self):
|
def temp_dir(self):
|
||||||
tempdir = tempfile.mkdtemp()
|
tempdir = tempfile.mkdtemp()
|
||||||
tempdir = os.path.realpath(tempdir)
|
tempdir = os.path.realpath(tempdir)
|
||||||
|
from test.support import os_helper
|
||||||
self.addCleanup(lambda: os_helper.rmtree(tempdir))
|
self.addCleanup(lambda: os_helper.rmtree(tempdir))
|
||||||
return tempdir
|
return tempdir
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue