summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/test/support/__init__.py10
-rw-r--r--Lib/test/test_gc.py4
2 files changed, 13 insertions, 1 deletions
diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py
index af43446..ce693e5 100644
--- a/Lib/test/support/__init__.py
+++ b/Lib/test/support/__init__.py
@@ -797,6 +797,16 @@ def disable_gc():
if have_gc:
gc.enable()
+@contextlib.contextmanager
+def gc_threshold(*args):
+ import gc
+ old_threshold = gc.get_threshold()
+ gc.set_threshold(*args)
+ try:
+ yield
+ finally:
+ gc.set_threshold(*old_threshold)
+
def python_is_optimized():
"""Find if Python was built with optimizations."""
diff --git a/Lib/test/test_gc.py b/Lib/test/test_gc.py
index 2aea025..f1a7afa 100644
--- a/Lib/test/test_gc.py
+++ b/Lib/test/test_gc.py
@@ -5,7 +5,7 @@ from test.support import (verbose, refcount_test,
from test.support.import_helper import import_module
from test.support.os_helper import temp_dir, TESTFN, unlink
from test.support.script_helper import assert_python_ok, make_script
-from test.support import threading_helper
+from test.support import threading_helper, gc_threshold
import gc
import sys
@@ -1330,6 +1330,7 @@ class GCTogglingTests(unittest.TestCase):
# with an empty __dict__.
self.assertEqual(x, None)
+ @gc_threshold(1000, 0, 0)
def test_bug1055820d(self):
# Corresponds to temp2d.py in the bug report. This is very much like
# test_bug1055820c, but uses a __del__ method instead of a weakref
@@ -1397,6 +1398,7 @@ class GCTogglingTests(unittest.TestCase):
# empty __dict__.
self.assertEqual(x, None)
+ @gc_threshold(1000, 0, 0)
def test_indirect_calls_with_gc_disabled(self):
junk = []
i = 0