From b37ac8eaf610c82c792ed038508b959e1bff686e Mon Sep 17 00:00:00 2001 From: Philip Jenvey Date: Wed, 14 Nov 2012 14:37:24 -0800 Subject: [PATCH] don't gc_collect on CPython to guarantee a lack of ref cycles (thanks Antoine) --- Lib/test/test_exceptions.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Lib/test/test_exceptions.py b/Lib/test/test_exceptions.py index 3c14c80481e..79bd7ffd3a0 100644 --- a/Lib/test/test_exceptions.py +++ b/Lib/test/test_exceptions.py @@ -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)