From: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com> Date: Wed, 4 Mar 2026 20:43:44 +0000 (+0000) Subject: Fix bugs in `compute-changes.py` logic for CIFuzz (#145232) X-Git-Tag: v3.15.0a7~68 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ae208d5665453aca414d87fb1894bf0bbb677003;p=thirdparty%2FPython%2Fcpython.git Fix bugs in `compute-changes.py` logic for CIFuzz (#145232) --- diff --git a/Lib/test/test_tools/test_compute_changes.py b/Lib/test/test_tools/test_compute_changes.py index b20ff975fc28..c4e3ffdb4de6 100644 --- a/Lib/test/test_tools/test_compute_changes.py +++ b/Lib/test/test_tools/test_compute_changes.py @@ -6,7 +6,8 @@ import unittest from pathlib import Path from unittest.mock import patch -from test.test_tools import skip_if_missing, imports_under_tool +from test.support import os_helper +from test.test_tools import basepath, skip_if_missing, imports_under_tool skip_if_missing("build") @@ -15,6 +16,7 @@ with patch.dict(os.environ, {"GITHUB_DEFAULT_BRANCH": "main"}): compute_changes = importlib.import_module("compute-changes") process_changed_files = compute_changes.process_changed_files +is_fuzzable_library_file = compute_changes.is_fuzzable_library_file Outputs = compute_changes.Outputs ANDROID_DIRS = compute_changes.ANDROID_DIRS IOS_DIRS = compute_changes.IOS_DIRS @@ -45,16 +47,16 @@ class TestProcessChangedFiles(unittest.TestCase): self.assertFalse(result.run_tests) def test_ci_fuzz_stdlib(self): - for p in LIBRARY_FUZZER_PATHS: - with self.subTest(p=p): - if p.is_dir(): - f = p / "file" - elif p.is_file(): - f = p - else: - continue - result = process_changed_files({f}) - self.assertTrue(result.run_ci_fuzz_stdlib) + with os_helper.change_cwd(basepath): + for p in LIBRARY_FUZZER_PATHS: + with self.subTest(p=p): + if p.is_dir(): + f = p / "file" + elif p.is_file(): + f = p + result = process_changed_files({f}) + self.assertTrue(result.run_ci_fuzz_stdlib) + self.assertTrue(is_fuzzable_library_file(f)) def test_android(self): for d in ANDROID_DIRS: diff --git a/Tools/build/compute-changes.py b/Tools/build/compute-changes.py index 67d2b0609696..981e00e28b42 100644 --- a/Tools/build/compute-changes.py +++ b/Tools/build/compute-changes.py @@ -68,7 +68,8 @@ LIBRARY_FUZZER_PATHS = frozenset({ Path("Lib/encodings/"), Path("Modules/_codecsmodule.c"), Path("Modules/cjkcodecs/"), - Path("Modules/unicodedata*"), + Path("Modules/unicodedata.c"), + Path("Modules/unicodedata_db.h"), # difflib Path("Lib/difflib.py"), # email @@ -116,10 +117,10 @@ class Outputs: def compute_changes() -> None: - target_branch, head_ref = git_refs() + target_ref, head_ref = git_refs() if os.environ.get("GITHUB_EVENT_NAME", "") == "pull_request": # Getting changed files only makes sense on a pull request - files = get_changed_files(target_branch, head_ref) + files = get_changed_files(target_ref, head_ref) outputs = process_changed_files(files) else: # Otherwise, just run the tests @@ -132,6 +133,7 @@ def compute_changes() -> None: run_wasi=True, run_windows_tests=True, ) + target_branch = target_ref.removeprefix("origin/") outputs = process_target_branch(outputs, target_branch) if outputs.run_tests: