Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 13 additions & 11 deletions Lib/test/test_tools/test_compute_changes.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
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")

Expand All @@ -15,6 +16,7 @@
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
Expand Down Expand Up @@ -45,16 +47,16 @@ def test_docs(self):
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:
Expand Down
8 changes: 5 additions & 3 deletions Tools/build/compute-changes.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,8 @@
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
Expand Down Expand Up @@ -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
Expand All @@ -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:
Expand Down
Loading