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

(cherry picked from commit 2a8127cafe)
This commit is contained in:
Serhiy Storchaka 2021-08-29 15:08:32 +03:00 committed by GitHub
parent dab74d68e3
commit 330aabbbbe
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
36 changed files with 143 additions and 15 deletions

View file

@ -36,7 +36,7 @@ def _local_refs(self, n):
t.join()
del t
gc.collect()
support.gc_collect() # For PyPy or other GCs.
self.assertEqual(len(weaklist), n)
# XXX _threading_local keeps the local of the last stopped thread alive.
@ -45,7 +45,7 @@ def _local_refs(self, n):
# Assignment to the same thread local frees it sometimes (!)
local.someothervar = None
gc.collect()
support.gc_collect() # For PyPy or other GCs.
deadlist = [weak for weak in weaklist if weak() is None]
self.assertIn(len(deadlist), (n-1, n), (n, len(deadlist)))
@ -88,7 +88,7 @@ def f():
# 2) GC the cycle (triggers threadmodule.c::local_clear
# before local_dealloc)
del cycle
gc.collect()
support.gc_collect() # For PyPy or other GCs.
e1.set()
e2.wait()
@ -189,7 +189,7 @@ class X:
x.local.x = x
wr = weakref.ref(x)
del x
gc.collect()
support.gc_collect() # For PyPy or other GCs.
self.assertIsNone(wr())