Skip to content
Snippets Groups Projects
Unverified Commit 561c709a authored by Miss Islington (bot)'s avatar Miss Islington (bot) Committed by GitHub
Browse files

test.pythoninfo logs more build info (GH-93225) (#93256)


Log also test.support.check_sanitizer() values.
(cherry picked from commit 06dd26f8)

Co-authored-by: default avatarVictor Stinner <vstinner@python.org>

Co-authored-by: default avatarVictor Stinner <vstinner@python.org>
Co-authored-by: default avatarJelle Zijlstra <jelle.zijlstra@gmail.com>
parent 738c730b
Branches
Tags
No related merge requests found
......@@ -9,6 +9,9 @@
import warnings
MS_WINDOWS = (sys.platform == 'win32')
def normalize_text(text):
if text is None:
return None
......@@ -125,13 +128,21 @@ def collect_sys(info_add):
encoding = '%s/%s' % (encoding, errors)
info_add('sys.%s.encoding' % name, encoding)
# Were we compiled --with-pydebug or with #define Py_DEBUG?
# Were we compiled --with-pydebug?
Py_DEBUG = hasattr(sys, 'gettotalrefcount')
if Py_DEBUG:
text = 'Yes (sys.gettotalrefcount() present)'
else:
text = 'No (sys.gettotalrefcount() missing)'
info_add('Py_DEBUG', text)
info_add('build.Py_DEBUG', text)
# Were we compiled --with-trace-refs?
Py_TRACE_REFS = hasattr(sys, 'getobjects')
if Py_TRACE_REFS:
text = 'Yes (sys.getobjects() present)'
else:
text = 'No (sys.getobjects() missing)'
info_add('build.Py_REF_DEBUG', text)
def collect_platform(info_add):
......@@ -444,6 +455,11 @@ def collect_datetime(info_add):
def collect_sysconfig(info_add):
# On Windows, sysconfig is not reliable to get macros used
# to build Python
if MS_WINDOWS:
return
import sysconfig
for name in (
......@@ -477,6 +493,28 @@ def collect_sysconfig(info_add):
value = normalize_text(value)
info_add('sysconfig[%s]' % name, value)
PY_CFLAGS = sysconfig.get_config_var('PY_CFLAGS')
NDEBUG = (PY_CFLAGS and '-DNDEBUG' in PY_CFLAGS)
if NDEBUG:
text = 'ignore assertions (macro defined)'
else:
text= 'build assertions (macro not defined)'
info_add('build.NDEBUG',text)
for name in (
'WITH_DOC_STRINGS',
'WITH_DTRACE',
'WITH_FREELISTS',
'WITH_PYMALLOC',
'WITH_VALGRIND',
):
value = sysconfig.get_config_var(name)
if value:
text = 'Yes'
else:
text = 'No'
info_add(f'build.{name}', text)
def collect_ssl(info_add):
import os
......@@ -588,7 +626,6 @@ def collect_testcapi(info_add):
return
call_func(info_add, 'pymem.allocator', _testcapi, 'pymem_getallocatorsname')
copy_attr(info_add, 'pymem.with_pymalloc', _testcapi, 'WITH_PYMALLOC')
def collect_resource(info_add):
......@@ -630,6 +667,13 @@ def collect_test_support(info_add):
call_func(info_add, 'test_support._is_gui_available', support, '_is_gui_available')
call_func(info_add, 'test_support.python_is_optimized', support, 'python_is_optimized')
info_add('test_support.check_sanitizer(address=True)',
support.check_sanitizer(address=True))
info_add('test_support.check_sanitizer(memory=True)',
support.check_sanitizer(memory=True))
info_add('test_support.check_sanitizer(ub=True)',
support.check_sanitizer(ub=True))
def collect_cc(info_add):
import subprocess
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment