From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Mon, 23 Jun 2025 10:53:55 +0000 (+0200) Subject: [3.14] gh-134986: Catch PermissionError when trying to call perf in tests (GH-134987... X-Git-Tag: v3.14.0b4~117 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=85fbf80ca214bdf2e1eb36691bc0e54335c7a09f;p=thirdparty%2FPython%2Fcpython.git [3.14] gh-134986: Catch PermissionError when trying to call perf in tests (GH-134987) (#135841) gh-134986: Catch PermissionError when trying to call perf in tests (GH-134987) Using Ubuntu 24.04 on the Windows Subsystem for Linux, perf will raise a `PermissionError` instead of `FileNotFoundError`. This commit modifies the tests to catch that. (cherry picked from commit 6ab842fce50a6125797bcddfc4a4b2622aa6c6a9) Co-authored-by: Emma Smith --- diff --git a/Lib/test/test_perf_profiler.py b/Lib/test/test_perf_profiler.py index 21d097dbb559..7529c853f9c1 100644 --- a/Lib/test/test_perf_profiler.py +++ b/Lib/test/test_perf_profiler.py @@ -506,9 +506,12 @@ def _is_perf_version_at_least(major, minor): # The output of perf --version looks like "perf version 6.7-3" but # it can also be perf version "perf version 5.15.143", or even include # a commit hash in the version string, like "6.12.9.g242e6068fd5c" + # + # PermissionError is raised if perf does not exist on the Windows Subsystem + # for Linux, see #134987 try: output = subprocess.check_output(["perf", "--version"], text=True) - except (subprocess.CalledProcessError, FileNotFoundError): + except (subprocess.CalledProcessError, FileNotFoundError, PermissionError): return False version = output.split()[2] version = version.split("-")[0]