mirror of
https://github.com/esphome/esphome.git
synced 2026-10-07 11:26:39 +00:00
Harden the shared library converter
Split out of #18662: the converter/manifest hardening without the download parallelization, which stays there. The PIO extra-script shim moves from espidf/ to platformio/ and gains type checks for every manifest field, capture of the Append variants and CPPPATH, warn-once diagnostics for unmodelled env reads, and uniform shlex quoting so captured values survive the lex_build_flags round-trip. The dependency walk normalizes every spelling PIO accepts, splits the routine cross-platform skip (IncompatiblePlatform) from real manifest problems, validates manifest shape once, and the shared flag lexer warns and drops trailing or empty glued arguments.
This commit is contained in:
@@ -1977,3 +1977,10 @@ def test_run_platformio_cli_invokes_heal(
|
||||
with patch.object(toolchain, "heal_platformio_python_env") as mock_heal:
|
||||
toolchain.run_platformio_cli("test")
|
||||
mock_heal.assert_called_once()
|
||||
|
||||
|
||||
def test_ccache_probe_spawns_with_close_fds_false() -> None:
|
||||
"""The probe follows the repo-wide posix_spawn convention."""
|
||||
with patch("subprocess.run") as mock_run:
|
||||
assert toolchain._ccache_runs("/usr/bin/ccache") is True
|
||||
assert mock_run.call_args.kwargs["close_fds"] is False
|
||||
|
||||
Reference in New Issue
Block a user