diff options
author | Eric Snow <ericsnowcurrently@gmail.com> | 2024-04-16 02:16:37 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-16 02:16:37 (GMT) |
commit | 3831144f9c8ce0fd582a0830a9e48a8da85e166a (patch) | |
tree | 88202292ee1f70e2ab2d62dccb73a6bfc4d1843c /Lib/test/test_interpreters/utils.py | |
parent | 757891ee8ad61a864444c1fdb764d81bc8a11189 (diff) | |
download | cpython-3831144f9c8ce0fd582a0830a9e48a8da85e166a.zip cpython-3831144f9c8ce0fd582a0830a9e48a8da85e166a.tar.gz cpython-3831144f9c8ce0fd582a0830a9e48a8da85e166a.tar.bz2 |
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.
Diffstat (limited to 'Lib/test/test_interpreters/utils.py')
-rw-r--r-- | Lib/test/test_interpreters/utils.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/Lib/test/test_interpreters/utils.py b/Lib/test/test_interpreters/utils.py index 08768c0..8e47581 100644 --- a/Lib/test/test_interpreters/utils.py +++ b/Lib/test/test_interpreters/utils.py @@ -17,10 +17,13 @@ import unittest import warnings 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 @@ -399,6 +402,7 @@ class TestBase(unittest.TestCase): def temp_dir(self): tempdir = tempfile.mkdtemp() tempdir = os.path.realpath(tempdir) + from test.support import os_helper self.addCleanup(lambda: os_helper.rmtree(tempdir)) return tempdir |