summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/libregrtest/refleak.py4
-rw-r--r--Lib/test/test_capi/test_opt.py16
-rw-r--r--Lib/test/test_mailbox.py4
3 files changed, 22 insertions, 2 deletions
diff --git a/Lib/test/libregrtest/refleak.py b/Lib/test/libregrtest/refleak.py
index 7da16cf..71a70af 100644
--- a/Lib/test/libregrtest/refleak.py
+++ b/Lib/test/libregrtest/refleak.py
@@ -201,8 +201,8 @@ def dash_R_cleanup(fs, ps, pic, zdc, abcs):
# Clear caches
clear_caches()
- # Clear type cache at the end: previous function calls can modify types
- sys._clear_type_cache()
+ # Clear other caches last (previous function calls can re-populate them):
+ sys._clear_internal_caches()
def warm_caches():
diff --git a/Lib/test/test_capi/test_opt.py b/Lib/test/test_capi/test_opt.py
index 5c8c059..e6b1b55 100644
--- a/Lib/test/test_capi/test_opt.py
+++ b/Lib/test/test_capi/test_opt.py
@@ -1,5 +1,6 @@
import contextlib
import opcode
+import sys
import textwrap
import unittest
@@ -181,6 +182,21 @@ class TestExecutorInvalidation(unittest.TestCase):
_testinternalcapi.invalidate_executors(f.__code__)
self.assertFalse(exe.is_valid())
+ def test_sys__clear_internal_caches(self):
+ def f():
+ for _ in range(1000):
+ pass
+ opt = _testinternalcapi.get_uop_optimizer()
+ with temporary_optimizer(opt):
+ f()
+ exe = get_first_executor(f)
+ self.assertIsNotNone(exe)
+ self.assertTrue(exe.is_valid())
+ sys._clear_internal_caches()
+ self.assertFalse(exe.is_valid())
+ exe = get_first_executor(f)
+ self.assertIsNone(exe)
+
class TestUops(unittest.TestCase):
def test_basic_loop(self):
diff --git a/Lib/test/test_mailbox.py b/Lib/test/test_mailbox.py
index c52c014..d4628f9 100644
--- a/Lib/test/test_mailbox.py
+++ b/Lib/test/test_mailbox.py
@@ -10,6 +10,7 @@ import io
import tempfile
from test import support
from test.support import os_helper
+from test.support import refleak_helper
from test.support import socket_helper
import unittest
import textwrap
@@ -2443,6 +2444,9 @@ class MiscTestCase(unittest.TestCase):
def tearDownModule():
support.reap_children()
+ # reap_children may have re-populated caches:
+ if refleak_helper.hunting_for_refleaks():
+ sys._clear_internal_caches()
if __name__ == '__main__':