aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Lib/test/test_perf_profiler.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_perf_profiler.py')
-rw-r--r--Lib/test/test_perf_profiler.py16
1 files changed, 14 insertions, 2 deletions
diff --git a/Lib/test/test_perf_profiler.py b/Lib/test/test_perf_profiler.py
index b68a55259c6..672851425ff 100644
--- a/Lib/test/test_perf_profiler.py
+++ b/Lib/test/test_perf_profiler.py
@@ -23,6 +23,15 @@ if support.check_sanitizer(address=True, memory=True, ub=True):
raise unittest.SkipTest("test crash randomly on ASAN/MSAN/UBSAN build")
+def is_jit_build():
+ cflags = (sysconfig.get_config_var("PY_CORE_CFLAGS") or '')
+ return "_Py_JIT" in cflags
+
+
+if is_jit_build():
+ raise unittest.SkipTest("Perf support is not available in JIT builds")
+
+
def supports_trampoline_profiling():
perf_trampoline = sysconfig.get_config_var("PY_HAVE_PERF_TRAMPOLINE")
if not perf_trampoline:
@@ -229,7 +238,7 @@ def is_unwinding_reliable_with_frame_pointers():
cflags = sysconfig.get_config_var("PY_CORE_CFLAGS")
if not cflags:
return False
- return "no-omit-frame-pointer" in cflags and "_Py_JIT" not in cflags
+ return "no-omit-frame-pointer" in cflags
def perf_command_works():
@@ -382,6 +391,7 @@ class TestPerfProfilerMixin:
self.assertNotIn(f"py::bar:{script}", stdout)
self.assertNotIn(f"py::baz:{script}", stdout)
+
@unittest.skipUnless(perf_command_works(), "perf command doesn't work")
@unittest.skipUnless(
is_unwinding_reliable_with_frame_pointers(),
@@ -494,7 +504,9 @@ def _is_perf_version_at_least(major, minor):
@unittest.skipUnless(perf_command_works(), "perf command doesn't work")
-@unittest.skipUnless(_is_perf_version_at_least(6, 6), "perf command may not work due to a perf bug")
+@unittest.skipUnless(
+ _is_perf_version_at_least(6, 6), "perf command may not work due to a perf bug"
+)
class TestPerfProfilerWithDwarf(unittest.TestCase, TestPerfProfilerMixin):
def run_perf(self, script_dir, script, activate_trampoline=True):
if activate_trampoline: