Close the residual idedata and size-summary silent-failure findings

A list-of-non-dicts compile DB now raises by name inside the best-effort
tuple. The launcher rejection moved into parse_entry itself so no caller
can record ccache as the compiler, and the shape key includes the entry's
directory since relative includes resolve against it. format_bar raises
on a non-positive total so every consumer must handle the meaningless
bar; the espidf summary validates the RAM region by name (a malformed
region can no longer suppress a computable Flash line) and the blanket
backstop logs the traceback at debug. A new test pins that the CI
trigger paths exist on disk, so a rename fails loudly.
This commit is contained in:
J. Nick Koston
2026-08-23 10:48:39 -05:00
parent e16cfded5d
commit e681c441d9
7 changed files with 80 additions and 20 deletions
+10
View File
@@ -1138,6 +1138,16 @@ def test_esp_idf_infra_changed(changed_files: list[str], expected: bool) -> None
assert determine_jobs._esp_idf_infra_changed(changed_files) is expected
def test_esp_idf_infra_trigger_paths_exist() -> None:
"""A renamed or moved trigger module must fail here, not silently stop
forcing the esp32 IDF compile."""
repo_root = Path(__file__).resolve().parents[2]
for file in determine_jobs.ESP_IDF_INFRA_TRIGGER_FILES:
assert (repo_root / file).is_file(), f"trigger file {file} moved or renamed"
for prefix in determine_jobs.ESP_IDF_INFRA_TRIGGER_PATH_PREFIXES:
assert (repo_root / prefix).is_dir(), f"trigger dir {prefix} moved or renamed"
@pytest.mark.parametrize(
("changed_files", "expected_result"),
[