]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-134986: Catch PermissionError when trying to call perf in tests (#134987)
authorEmma Smith <emma@emmatyping.dev>
Mon, 23 Jun 2025 10:28:05 +0000 (06:28 -0400)
committerGitHub <noreply@github.com>
Mon, 23 Jun 2025 10:28:05 +0000 (12:28 +0200)
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.

Lib/test/test_perf_profiler.py

index 21d097dbb559ec02cb8297f6f59f1d83c711beb7..7529c853f9c1524123ffb44286ae6bd5ee4e79ec 100644 (file)
@@ -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]