From 4514998195c7ff9809d13ece89fc60298f6e9b12 Mon Sep 17 00:00:00 2001 From: Donghee Na Date: Tue, 3 Sep 2024 00:37:26 +0900 Subject: [PATCH] =?UTF-8?q?[3.12]=20gh-101525:=20Skip=20test=5Fgdb=20if=20?= =?UTF-8?q?the=20binary=20is=20relocated=20by=20BOLT.=20(=E2=80=A6=20(#123?= =?UTF-8?q?603)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [3.12] gh-101525: Skip test_gdb if the binary is relocated by BOLT. (gh-118572) (cherry picked from commit f95fc4de115ae03d7aa6dece678240df085cb4f6) --- Lib/test/libregrtest/utils.py | 5 +++++ Lib/test/support/__init__.py | 10 ++++++++++ Lib/test/test_gdb/__init__.py | 3 +++ .../2024-05-04-22-56-41.gh-issue-101525.LHK166.rst | 2 ++ 4 files changed, 20 insertions(+) create mode 100644 Misc/NEWS.d/next/Tests/2024-05-04-22-56-41.gh-issue-101525.LHK166.rst diff --git a/Lib/test/libregrtest/utils.py b/Lib/test/libregrtest/utils.py index 3bd2ccdedf3..a4fd1ee7a85 100644 --- a/Lib/test/libregrtest/utils.py +++ b/Lib/test/libregrtest/utils.py @@ -343,6 +343,11 @@ def get_build_info(): if support.check_cflags_pgo(): # PGO (--enable-optimizations) optimizations.append('PGO') + + if support.check_bolt_optimized(): + # BOLT (--enable-bolt) + optimizations.append('BOLT') + if optimizations: build.append('+'.join(optimizations)) diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py index 9a56faa648b..8519fedf8db 100644 --- a/Lib/test/support/__init__.py +++ b/Lib/test/support/__init__.py @@ -817,10 +817,20 @@ if hasattr(sys, "getobjects"): _align = '0P' _vheader = _header + 'n' +def check_bolt_optimized(): + # Always return false, if the platform is WASI, + # because BOLT optimization does not support WASM binary. + if is_wasi: + return False + config_args = sysconfig.get_config_var('CONFIG_ARGS') or '' + return '--enable-bolt' in config_args + + def calcobjsize(fmt): import struct return struct.calcsize(_header + fmt + _align) + def calcvobjsize(fmt): import struct return struct.calcsize(_vheader + fmt + _align) diff --git a/Lib/test/test_gdb/__init__.py b/Lib/test/test_gdb/__init__.py index 99557739af6..0dd72178023 100644 --- a/Lib/test/test_gdb/__init__.py +++ b/Lib/test/test_gdb/__init__.py @@ -24,6 +24,9 @@ if not sysconfig.is_python_build(): if support.check_cflags_pgo(): raise unittest.SkipTest("test_gdb is not reliable on PGO builds") +if support.check_bolt_optimized(): + raise unittest.SkipTest("test_gdb is not reliable on BOLT optimized builds") + def load_tests(*args): return support.load_package_tests(os.path.dirname(__file__), *args) diff --git a/Misc/NEWS.d/next/Tests/2024-05-04-22-56-41.gh-issue-101525.LHK166.rst b/Misc/NEWS.d/next/Tests/2024-05-04-22-56-41.gh-issue-101525.LHK166.rst new file mode 100644 index 00000000000..ae8001ad373 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2024-05-04-22-56-41.gh-issue-101525.LHK166.rst @@ -0,0 +1,2 @@ +Skip ``test_gdb`` if the binary is relocated by BOLT. +Patch by Donghee Na.