summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/test/libregrtest/refleak.py8
-rw-r--r--Misc/NEWS.d/next/Tests/2019-04-08-19-01-21.bpo-36565.2bxgtU.rst2
2 files changed, 8 insertions, 2 deletions
diff --git a/Lib/test/libregrtest/refleak.py b/Lib/test/libregrtest/refleak.py
index 6724488..d68ea63 100644
--- a/Lib/test/libregrtest/refleak.py
+++ b/Lib/test/libregrtest/refleak.py
@@ -8,9 +8,13 @@ from test import support
try:
from _abc import _get_dump
except ImportError:
+ import weakref
+
def _get_dump(cls):
- # For legacy Python version
- return (cls._abc_registry, cls._abc_cache,
+ # Reimplement _get_dump() for pure-Python implementation of
+ # the abc module (Lib/_py_abc.py)
+ registry_weakrefs = set(weakref.ref(obj) for obj in cls._abc_registry)
+ return (registry_weakrefs, cls._abc_cache,
cls._abc_negative_cache, cls._abc_negative_cache_version)
diff --git a/Misc/NEWS.d/next/Tests/2019-04-08-19-01-21.bpo-36565.2bxgtU.rst b/Misc/NEWS.d/next/Tests/2019-04-08-19-01-21.bpo-36565.2bxgtU.rst
new file mode 100644
index 0000000..8a14d08
--- /dev/null
+++ b/Misc/NEWS.d/next/Tests/2019-04-08-19-01-21.bpo-36565.2bxgtU.rst
@@ -0,0 +1,2 @@
+Fix reference hunting (``python3 -m test -R 3:3``) when Python has no
+built-in abc module.