From: Victor Stinner Date: Fri, 12 Apr 2019 13:15:04 +0000 (+0200) Subject: bpo-36611: Fix test_sys.test_getallocatedblocks() (GH-12797) X-Git-Tag: v3.8.0a4~211 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9b8314cfe29ca532fc335277f6c36b72e6132922;p=python bpo-36611: Fix test_sys.test_getallocatedblocks() (GH-12797) Fix test_sys.test_getallocatedblocks() when tracemalloc is enabled. If the name of Python memory allocators cannot get read, consider that pymalloc is disabled. Fix the following error: ./python -X tracemalloc -m test test_sys -v -m test_getallocatedblocks ERROR: test_getallocatedblocks (test.test_sys.SysModuleTest) ------------------------------------------------------------ Traceback (most recent call last): File "Lib/test/test_sys.py", line 770, in test_getallocatedblocks alloc_name = _testcapi.pymem_getallocatorsname() RuntimeError: cannot get allocators name --- diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py index 4bd54af362..d1c7daad7b 100644 --- a/Lib/test/test_sys.py +++ b/Lib/test/test_sys.py @@ -767,8 +767,13 @@ class SysModuleTest(unittest.TestCase): except ImportError: with_pymalloc = support.with_pymalloc() else: - alloc_name = _testcapi.pymem_getallocatorsname() - with_pymalloc = (alloc_name in ('pymalloc', 'pymalloc_debug')) + try: + alloc_name = _testcapi.pymem_getallocatorsname() + except RuntimeError as exc: + # "cannot get allocators name" (ex: tracemalloc is used) + with_pymalloc = True + else: + with_pymalloc = (alloc_name in ('pymalloc', 'pymalloc_debug')) # Some sanity checks a = sys.getallocatedblocks() diff --git a/Misc/NEWS.d/next/Tests/2019-04-12-12-44-42.bpo-36611.UtorXL.rst b/Misc/NEWS.d/next/Tests/2019-04-12-12-44-42.bpo-36611.UtorXL.rst new file mode 100644 index 0000000000..e4da7f1099 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2019-04-12-12-44-42.bpo-36611.UtorXL.rst @@ -0,0 +1,2 @@ +Fix ``test_sys.test_getallocatedblocks()`` when :mod:`tracemalloc` is +enabled.