don't gc_collect on CPython to guarantee a lack of ref cycles (thanks Antoine)

This commit is contained in:
Philip Jenvey 2012-11-14 14:37:24 -08:00
parent f9e49eaefc
commit b37ac8eaf6
1 changed files with 9 additions and 5 deletions

View File

@ -7,8 +7,8 @@ import pickle
import weakref
import errno
from test.support import (TESTFN, unlink, run_unittest, captured_output,
gc_collect, cpython_only)
from test.support import (TESTFN, captured_output, check_impl_detail,
cpython_only, gc_collect, run_unittest, unlink)
# XXX This is not really enough, each *operation* should be tested!
@ -493,7 +493,9 @@ class ExceptionTests(unittest.TestCase):
e.__context__ = None
obj = None
obj = wr()
gc_collect()
# guarantee no ref cycles on CPython (don't gc_collect)
if check_impl_detail(cpython=False):
gc_collect()
self.assertTrue(obj is None, "%s" % obj)
# Some complicated construct
@ -510,7 +512,8 @@ class ExceptionTests(unittest.TestCase):
except MyException:
pass
obj = None
gc_collect()
if check_impl_detail(cpython=False):
gc_collect()
obj = wr()
self.assertTrue(obj is None, "%s" % obj)
@ -525,7 +528,8 @@ class ExceptionTests(unittest.TestCase):
with Context():
inner_raising_func()
obj = None
gc_collect()
if check_impl_detail(cpython=False):
gc_collect()
obj = wr()
self.assertTrue(obj is None, "%s" % obj)