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

(cherry picked from commit 2a8127cafe)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
This commit is contained in:
Serhiy Storchaka 2021-09-08 18:08:57 +03:00 committed by GitHub
parent c081649e6d
commit 462c1f0403
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
35 changed files with 139 additions and 13 deletions

View file

@ -37,7 +37,7 @@ class BaseLocalTest:
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.
@ -46,7 +46,7 @@ class BaseLocalTest:
# 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)))
@ -89,7 +89,7 @@ class BaseLocalTest:
# 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()
@ -190,7 +190,7 @@ class BaseLocalTest:
x.local.x = x
wr = weakref.ref(x)
del x
gc.collect()
support.gc_collect() # For PyPy or other GCs.
self.assertIsNone(wr())