当前位置: 首页>>代码示例>>Python>>正文


Python support.gc_collect方法代码示例

本文整理汇总了Python中test.support.gc_collect方法的典型用法代码示例。如果您正苦于以下问题:Python support.gc_collect方法的具体用法?Python support.gc_collect怎么用?Python support.gc_collect使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在test.support的用法示例。


在下文中一共展示了support.gc_collect方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: test_dealloc_warn

# 需要导入模块: from test import support [as 别名]
# 或者: from test.support import gc_collect [as 别名]
def test_dealloc_warn(self):
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        r = repr(sock)
        with self.assertWarns(ResourceWarning) as cm:
            sock = None
            support.gc_collect()
        self.assertIn(r, str(cm.warning.args[0]))
        # An open socket file object gets dereferenced after the socket
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        f = sock.makefile('rb')
        r = repr(sock)
        sock = None
        support.gc_collect()
        with self.assertWarns(ResourceWarning):
            f = None
            support.gc_collect() 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:18,代码来源:test_socket.py

示例2: test_destructor

# 需要导入模块: from test import support [as 别名]
# 或者: from test.support import gc_collect [as 别名]
def test_destructor(self):
        record = []
        class MyFileIO(self.FileIO):
            def __del__(self):
                record.append(1)
                try:
                    f = super().__del__
                except AttributeError:
                    pass
                else:
                    f()
            def close(self):
                record.append(2)
                super().close()
            def flush(self):
                record.append(3)
                super().flush()
        with support.check_warnings(('', ResourceWarning)):
            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") 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:27,代码来源:test_io.py

示例3: test_IOBase_finalize

# 需要导入模块: from test import support [as 别名]
# 或者: from 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) 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:19,代码来源:test_io.py

示例4: test_override_destructor

# 需要导入模块: from test import support [as 别名]
# 或者: from 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().__del__
                except AttributeError:
                    pass
                else:
                    f()
            def close(self):
                record.append(2)
                super().close()
            def flush(self):
                record.append(3)
                super().flush()
        b = self.BytesIO()
        t = MyTextIO(b, encoding="ascii")
        del t
        support.gc_collect()
        self.assertEqual(record, [1, 2, 3]) 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:24,代码来源:test_io.py

示例5: test_garbage_collection

# 需要导入模块: from test import support [as 别名]
# 或者: from test.support import gc_collect [as 别名]
def test_garbage_collection(self):
        # C TextIOWrapper objects are collected, and collecting them flushes
        # all data to disk.
        # The Python version has __del__, so it ends in gc.garbage instead.
        with support.check_warnings(('', ResourceWarning)):
            rawio = io.FileIO(support.TESTFN, "wb")
            b = self.BufferedWriter(rawio)
            t = self.TextIOWrapper(b, encoding="ascii")
            t.write("456def")
            t.x = t
            wr = weakref.ref(t)
            del t
            support.gc_collect()
        self.assertIsNone(wr(), wr)
        with self.open(support.TESTFN, "rb") as f:
            self.assertEqual(f.read(), b"456def") 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:18,代码来源:test_io.py

示例6: test_delete_hook

# 需要导入模块: from test import support [as 别名]
# 或者: from 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
        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") 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:19,代码来源:test_descr.py

示例7: test_subtype_resurrection

# 需要导入模块: from test import support [as 别名]
# 或者: from test.support import gc_collect [as 别名]
def test_subtype_resurrection(self):
        # Testing resurrection of new-style instance...

        class C(object):
            container = []

            def __del__(self):
                # resurrect the instance
                C.container.append(self)

        c = C()
        c.attr = 42

        # The most interesting thing here is whether this blows up, due to
        # flawed GC tracking logic in typeobject.c's call_finalizer() (a 2.2.1
        # bug).
        del c

        support.gc_collect()
        self.assertEqual(len(C.container), 1)

        # Make c mortal again, so that the test framework with -l doesn't report
        # it as a leak.
        del C.__del__ 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:26,代码来源:test_descr.py

示例8: test_pipe_handle

# 需要导入模块: from test import support [as 别名]
# 或者: from test.support import gc_collect [as 别名]
def test_pipe_handle(self):
        h, _ = windows_utils.pipe(overlapped=(True, True))
        _winapi.CloseHandle(_)
        p = windows_utils.PipeHandle(h)
        self.assertEqual(p.fileno(), h)
        self.assertEqual(p.handle, h)

        # check garbage collection of p closes handle
        with warnings.catch_warnings():
            warnings.filterwarnings("ignore", "",  ResourceWarning)
            del p
            support.gc_collect()
        try:
            _winapi.CloseHandle(h)
        except OSError as e:
            self.assertEqual(e.winerror, 6)     # ERROR_INVALID_HANDLE
        else:
            raise RuntimeError('expected ERROR_INVALID_HANDLE') 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:20,代码来源:test_windows_utils.py

示例9: test_run_forever_keyboard_interrupt

# 需要导入模块: from test import support [as 别名]
# 或者: from test.support import gc_collect [as 别名]
def test_run_forever_keyboard_interrupt(self):
        # Python issue #22601: ensure that the temporary task created by
        # run_forever() consumes the KeyboardInterrupt and so don't log
        # a warning
        @asyncio.coroutine
        def raise_keyboard_interrupt():
            raise KeyboardInterrupt

        self.loop._process_events = mock.Mock()
        self.loop.call_exception_handler = mock.Mock()

        try:
            self.loop.run_until_complete(raise_keyboard_interrupt())
        except KeyboardInterrupt:
            pass
        self.loop.close()
        support.gc_collect()

        self.assertFalse(self.loop.call_exception_handler.called) 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:21,代码来源:test_base_events.py

示例10: test_refcycle

# 需要导入模块: from test import support [as 别名]
# 或者: from test.support import gc_collect [as 别名]
def test_refcycle(self):
        # A generator caught in a refcycle gets finalized anyway.
        old_garbage = gc.garbage[:]
        finalized = False
        def gen():
            nonlocal finalized
            try:
                g = yield
                yield 1
            finally:
                finalized = True

        g = gen()
        next(g)
        g.send(g)
        self.assertGreater(sys.getrefcount(g), 2)
        self.assertFalse(finalized)
        del g
        support.gc_collect()
        self.assertTrue(finalized)
        self.assertEqual(gc.garbage, old_garbage) 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:23,代码来源:test_generators.py

示例11: test_getbuffer

# 需要导入模块: from test import support [as 别名]
# 或者: from test.support import gc_collect [as 别名]
def test_getbuffer(self):
        memio = self.ioclass(b"1234567890")
        buf = memio.getbuffer()
        self.assertEqual(bytes(buf), b"1234567890")
        memio.seek(5)
        buf = memio.getbuffer()
        self.assertEqual(bytes(buf), b"1234567890")
        # Trying to change the size of the BytesIO while a buffer is exported
        # raises a BufferError.
        self.assertRaises(BufferError, memio.write, b'x' * 100)
        self.assertRaises(BufferError, memio.truncate)
        self.assertRaises(BufferError, memio.close)
        self.assertFalse(memio.closed)
        # Mutating the buffer updates the BytesIO
        buf[3:6] = b"abc"
        self.assertEqual(bytes(buf), b"123abc7890")
        self.assertEqual(memio.getvalue(), b"123abc7890")
        # After the buffer gets released, we can resize and close the BytesIO
        # again
        del buf
        support.gc_collect()
        memio.truncate()
        memio.close()
        self.assertRaises(ValueError, memio.getbuffer) 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:26,代码来源:test_memoryio.py

示例12: test_frame_resurrect

# 需要导入模块: from test import support [as 别名]
# 或者: from test.support import gc_collect [as 别名]
def test_frame_resurrect(self):
        # A generator frame can be resurrected by a generator's finalization.
        def gen():
            nonlocal frame
            try:
                yield
            finally:
                frame = sys._getframe()

        g = gen()
        wr = weakref.ref(g)
        next(g)
        del g
        support.gc_collect()
        self.assertIs(wr(), None)
        self.assertTrue(frame)
        del frame
        support.gc_collect() 
开发者ID:IronLanguages,项目名称:ironpython3,代码行数:20,代码来源:test_generators.py

示例13: CheckBpo31770

# 需要导入模块: from test import support [as 别名]
# 或者: from test.support import gc_collect [as 别名]
def CheckBpo31770(self):
        """
        The interpreter shouldn't crash in case Cursor.__init__() is called
        more than once.
        """
        def callback(*args):
            pass
        con = sqlite.connect(":memory:")
        cur = sqlite.Cursor(con)
        ref = weakref.ref(cur, callback)
        cur.__init__(con)
        del cur
        # The interpreter shouldn't crash when ref is collected.
        del ref
        support.gc_collect() 
开发者ID:IronLanguages,项目名称:ironpython2,代码行数:17,代码来源:regression.py

示例14: test_gc_collect

# 需要导入模块: from test import support [as 别名]
# 或者: from test.support import gc_collect [as 别名]
def test_gc_collect(self):
        support.gc_collect() 
开发者ID:IronLanguages,项目名称:ironpython2,代码行数:4,代码来源:test_test_support.py

示例15: _check_base_destructor

# 需要导入模块: from test import support [as 别名]
# 或者: from 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().__del__
                except AttributeError:
                    pass
                else:
                    f()
            def close(self):
                record.append(self.on_close)
                super().close()
            def flush(self):
                record.append(self.on_flush)
                super().flush()
        f = MyIO()
        del f
        support.gc_collect()
        self.assertEqual(record, [1, 2, 3]) 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:31,代码来源:test_io.py


注:本文中的test.support.gc_collect方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。