本文整理汇总了Python中test.test_support.gc_collect方法的典型用法代码示例。如果您正苦于以下问题:Python test_support.gc_collect方法的具体用法?Python test_support.gc_collect怎么用?Python test_support.gc_collect使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类test.test_support
的用法示例。
在下文中一共展示了test_support.gc_collect方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_destructor
# 需要导入模块: from test import test_support [as 别名]
# 或者: from test.test_support import gc_collect [as 别名]
def test_destructor(self):
record = []
class MyFileIO(self.FileIO):
def __del__(self):
record.append(1)
try:
f = super(MyFileIO, self).__del__
except AttributeError:
pass
else:
f()
def close(self):
record.append(2)
super(MyFileIO, self).close()
def flush(self):
record.append(3)
super(MyFileIO, self).flush()
f = MyFileIO(support.TESTFN, "wb")
f.write(b"xxx")
del f
support.gc_collect()
self.assertEqual(record, [1, 2, 3])
with self.open(support.TESTFN, "rb") as f:
self.assertEqual(f.read(), b"xxx")
示例2: test_IOBase_finalize
# 需要导入模块: from test import test_support [as 别名]
# 或者: from test.test_support import gc_collect [as 别名]
def test_IOBase_finalize(self):
# Issue #12149: segmentation fault on _PyIOBase_finalize when both a
# class which inherits IOBase and an object of this class are caught
# in a reference cycle and close() is already in the method cache.
class MyIO(self.IOBase):
def close(self):
pass
# create an instance to populate the method cache
MyIO()
obj = MyIO()
obj.obj = obj
wr = weakref.ref(obj)
del MyIO
del obj
support.gc_collect()
self.assertIsNone(wr(), wr)
示例3: test_override_destructor
# 需要导入模块: from test import test_support [as 别名]
# 或者: from test.test_support import gc_collect [as 别名]
def test_override_destructor(self):
record = []
class MyTextIO(self.TextIOWrapper):
def __del__(self):
record.append(1)
try:
f = super(MyTextIO, self).__del__
except AttributeError:
pass
else:
f()
def close(self):
record.append(2)
super(MyTextIO, self).close()
def flush(self):
record.append(3)
super(MyTextIO, self).flush()
b = self.BytesIO()
t = MyTextIO(b, encoding="ascii")
del t
support.gc_collect()
self.assertEqual(record, [1, 2, 3])
示例4: test_blockingioerror
# 需要导入模块: from test import test_support [as 别名]
# 或者: from test.test_support import gc_collect [as 别名]
def test_blockingioerror(self):
# Various BlockingIOError issues
self.assertRaises(TypeError, self.BlockingIOError)
self.assertRaises(TypeError, self.BlockingIOError, 1)
self.assertRaises(TypeError, self.BlockingIOError, 1, 2, 3, 4)
self.assertRaises(TypeError, self.BlockingIOError, 1, "", None)
b = self.BlockingIOError(1, "")
self.assertEqual(b.characters_written, 0)
class C(unicode):
pass
c = C("")
b = self.BlockingIOError(1, c)
c.b = b
b.c = c
wr = weakref.ref(c)
del c, b
support.gc_collect()
self.assertIsNone(wr(), wr)
示例5: test_weakrefs
# 需要导入模块: from test import test_support [as 别名]
# 或者: from test.test_support import gc_collect [as 别名]
def test_weakrefs(self):
# Testing weak references...
import weakref
class C(object):
pass
c = C()
r = weakref.ref(c)
self.assertEqual(r(), c)
del c
test_support.gc_collect()
self.assertEqual(r(), None)
del r
class NoWeak(object):
__slots__ = ['foo']
no = NoWeak()
try:
weakref.ref(no)
except TypeError, msg:
self.assertIn("weak reference", str(msg))
示例6: test_cache_leak
# 需要导入模块: from test import test_support [as 别名]
# 或者: from test.test_support import gc_collect [as 别名]
def test_cache_leak(self):
# See issue #2521.
class A(object):
__metaclass__ = abc.ABCMeta
@abc.abstractmethod
def f(self):
pass
class C(A):
def f(self):
A.f(self)
r = weakref.ref(C)
# Trigger cache.
C().f()
del C
test_support.gc_collect()
self.assertEqual(r(), None)
示例7: test_IOBase_finalize
# 需要导入模块: from test import test_support [as 别名]
# 或者: from test.test_support import gc_collect [as 别名]
def test_IOBase_finalize(self):
# Issue #12149: segmentation fault on _PyIOBase_finalize when both a
# class which inherits IOBase and an object of this class are caught
# in a reference cycle and close() is already in the method cache.
class MyIO(self.IOBase):
def close(self):
pass
# create an instance to populate the method cache
MyIO()
obj = MyIO()
obj.obj = obj
wr = weakref.ref(obj)
del MyIO
del obj
support.gc_collect()
self.assertTrue(wr() is None, wr)
示例8: test_blockingioerror
# 需要导入模块: from test import test_support [as 别名]
# 或者: from test.test_support import gc_collect [as 别名]
def test_blockingioerror(self):
# Various BlockingIOError issues
self.assertRaises(TypeError, self.BlockingIOError)
self.assertRaises(TypeError, self.BlockingIOError, 1)
self.assertRaises(TypeError, self.BlockingIOError, 1, 2, 3, 4)
self.assertRaises(TypeError, self.BlockingIOError, 1, "", None)
b = self.BlockingIOError(1, "")
self.assertEqual(b.characters_written, 0)
class C(unicode):
pass
c = C("")
b = self.BlockingIOError(1, c)
c.b = b
b.c = c
wr = weakref.ref(c)
del c, b
support.gc_collect()
self.assertTrue(wr() is None, wr)
示例9: test_weakrefs
# 需要导入模块: from test import test_support [as 别名]
# 或者: from test.test_support import gc_collect [as 别名]
def test_weakrefs(self):
# Testing weak references...
import weakref
class C(object):
pass
c = C()
r = weakref.ref(c)
self.assertEqual(r(), c)
del c
test_support.gc_collect()
self.assertEqual(r(), None)
del r
class NoWeak(object):
__slots__ = ['foo']
no = NoWeak()
try:
weakref.ref(no)
except TypeError, msg:
self.assertTrue(str(msg).find("weak reference") >= 0)
示例10: test_delete_hook
# 需要导入模块: from test import test_support [as 别名]
# 或者: from test.test_support import gc_collect [as 别名]
def test_delete_hook(self):
# Testing __del__ hook...
log = []
class C(object):
def __del__(self):
log.append(1)
c = C()
self.assertEqual(log, [])
del c
test_support.gc_collect()
self.assertEqual(log, [1])
class D(object): pass
d = D()
try: del d[0]
except TypeError: pass
else: self.fail("invalid del() didn't raise TypeError")
示例11: _assert_no_pending_threads
# 需要导入模块: from test import test_support [as 别名]
# 或者: from test.test_support import gc_collect [as 别名]
def _assert_no_pending_threads(self, group, msg):
# Ensure __del__ finalizers are called on sockets. Two things to note:
# 1. It takes two collections for finalization to run.
# 2. gc.collect() is only advisory to the JVM, never mandatory. Still
# it usually seems to happen under light load.
# Wait up to one second for there not to be pending threads
for i in xrange(10):
pending_threads = _check_threadpool_for_pending_threads(group)
if len(pending_threads) == 0:
break
test_support.gc_collect()
if pending_threads:
print "Pending threads in Netty msg={} pool={}".format(msg, pprint.pformat(pending_threads))
示例12: test_weakref__sock
# 需要导入模块: from test import test_support [as 别名]
# 或者: from test.test_support import gc_collect [as 别名]
def test_weakref__sock(self):
s = socket.socket()._sock
w = weakref.ref(s)
self.assertIs(w(), s)
del s
test_support.gc_collect()
self.assertIsNone(w())
示例13: _check_base_destructor
# 需要导入模块: from test import test_support [as 别名]
# 或者: from test.test_support import gc_collect [as 别名]
def _check_base_destructor(self, base):
record = []
class MyIO(base):
def __init__(self):
# This exercises the availability of attributes on object
# destruction.
# (in the C version, close() is called by the tp_dealloc
# function, not by __del__)
self.on_del = 1
self.on_close = 2
self.on_flush = 3
def __del__(self):
record.append(self.on_del)
try:
f = super(MyIO, self).__del__
except AttributeError:
pass
else:
f()
def close(self):
record.append(self.on_close)
super(MyIO, self).close()
def flush(self):
record.append(self.on_flush)
super(MyIO, self).flush()
f = MyIO()
del f
support.gc_collect()
self.assertEqual(record, [1, 2, 3])
示例14: test_garbage_collection
# 需要导入模块: from test import test_support [as 别名]
# 或者: from test.test_support import gc_collect [as 别名]
def test_garbage_collection(self):
# FileIO objects are collected, and collecting them flushes
# all data to disk.
f = self.FileIO(support.TESTFN, "wb")
f.write(b"abcxxx")
f.f = f
wr = weakref.ref(f)
del f
support.gc_collect()
self.assertIsNone(wr(), wr)
with self.open(support.TESTFN, "rb") as f:
self.assertEqual(f.read(), b"abcxxx")
示例15: test_nonbuffered_textio
# 需要导入模块: from test import test_support [as 别名]
# 或者: from test.test_support import gc_collect [as 别名]
def test_nonbuffered_textio(self):
with warnings.catch_warnings(record=True) as recorded:
with self.assertRaises(ValueError):
self.open(support.TESTFN, 'w', buffering=0)
support.gc_collect()
self.assertEqual(recorded, [])