raise unittest.SkipTest("perf trampoline profiling not supported")
-def samply_command_works():
- try:
- cmd = ["samply", "--help"]
- except (subprocess.SubprocessError, OSError):
- return False
-
+def _samply_command_works():
# Check that we can run a simple samply run
with temp_dir() as script_dir:
try:
with gzip.open(output_file, mode="rt", encoding="utf-8") as f:
return f.read()
+SAMPLY_COMMAND_WORKS = _samply_command_works()
+
-@unittest.skipUnless(samply_command_works(), "samply command doesn't work")
+@unittest.skipUnless(SAMPLY_COMMAND_WORKS, "samply command doesn't work")
class TestSamplyProfilerMixin:
def run_samply(self, script_dir, perf_mode, script):
raise NotImplementedError()
self.assertNotIn(f"py::baz:{script}", output)
-@unittest.skipUnless(samply_command_works(), "samply command doesn't work")
+@unittest.skipUnless(SAMPLY_COMMAND_WORKS, "samply command doesn't work")
class TestSamplyProfiler(unittest.TestCase, TestSamplyProfilerMixin):
def run_samply(self, script_dir, script, activate_trampoline=True):
if activate_trampoline:
self.assertIn(line, child_perf_file_contents)
-@unittest.skipUnless(samply_command_works(), "samply command doesn't work")
+@unittest.skipUnless(SAMPLY_COMMAND_WORKS, "samply command doesn't work")
class TestSamplyProfilerWithJitDump(unittest.TestCase, TestSamplyProfilerMixin):
# Regression test for gh-150723: exercises the binary jitdump backend
# (-Xperf_jit) end to end through samply, unlike TestSamplyProfiler which