bpo-25130: Add calls of gc.collect() in tests to support PyPy (GH-28005)

This commit is contained in:
Serhiy Storchaka 2021-08-29 14:04:40 +03:00 committed by GitHub
parent 07d3d54f4e
commit 2a8127cafe
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
36 changed files with 144 additions and 14 deletions

View file

@ -611,6 +611,7 @@ class _TestProcess(BaseTestCase):
del c
p.start()
p.join()
gc.collect() # For PyPy or other GCs.
self.assertIs(wr(), None)
self.assertEqual(q.get(), 5)
close_queue(q)
@ -2667,6 +2668,7 @@ class _TestPool(BaseTestCase):
self.pool.map(identity, objs)
del objs
gc.collect() # For PyPy or other GCs.
time.sleep(DELTA) # let threaded cleanup code run
self.assertEqual(set(wr() for wr in refs), {None})
# With a process pool, copies of the objects are returned, check
@ -4198,6 +4200,7 @@ class _TestFinalize(BaseTestCase):
util._finalizer_registry.clear()
def tearDown(self):
gc.collect() # For PyPy or other GCs.
self.assertFalse(util._finalizer_registry)
util._finalizer_registry.update(self.registry_backup)
@ -4209,12 +4212,14 @@ class _TestFinalize(BaseTestCase):
a = Foo()
util.Finalize(a, conn.send, args=('a',))
del a # triggers callback for a
gc.collect() # For PyPy or other GCs.
b = Foo()
close_b = util.Finalize(b, conn.send, args=('b',))
close_b() # triggers callback for b
close_b() # does nothing because callback has already been called
del b # does nothing because callback has already been called
gc.collect() # For PyPy or other GCs.
c = Foo()
util.Finalize(c, conn.send, args=('c',))