diff --git a/esphome/components/esp8266/boards.py b/esphome/components/esp8266/boards.py index 5be8011ba4..d458442dbd 100644 --- a/esphome/components/esp8266/boards.py +++ b/esphome/components/esp8266/boards.py @@ -362,14 +362,9 @@ BOARDS = { } -# Per-board Arduino core build metadata for the native (PlatformIO-free) -# toolchain: the variant directory (supplies pins_arduino.h) and the -# board-identity defines the PlatformIO builder passes via build.extra_flags. -# Valid for platform 4.x only (older tags differ, e.g. esp8285's variant); -# the native toolchain's validator enforces that pairing by requiring core -# >= 3.1.1 and rejecting a custom platform_version. -# -DESP8266 and -DARDUINO_ARCH_ESP8266 are shared by every board and added by -# the generator; only the per-board defines are listed here. +# Per-board variant dir + identity defines from platform-espressif8266 4.x +# build.extra_flags; the shared -DESP8266/-DARDUINO_ARCH_ESP8266 are added +# by the generator. # # Regenerate ESP8266_BOARD_BUILD with (v4.2.1 is the platform version the # native toolchain mirrors; regenerate against the tag when bumping it): diff --git a/esphome/components/esp8266/build_surgery.py b/esphome/components/esp8266/build_surgery.py index 97ce750dd5..2df1d5dbb8 100644 --- a/esphome/components/esp8266/build_surgery.py +++ b/esphome/components/esp8266/build_surgery.py @@ -84,8 +84,6 @@ def apply_testing_memory_patches(content: str, segments: Collection[str]) -> str """ for segment in _TESTING_SEGMENT_SIZES: if segment not in segments and _segment_line_re(segment).search(content): - # A known segment left unpatched would keep its real memory limit - # and silently under-provision the testing build raise RuntimeError( f"Testing-mode segment {segment} is present in the linker " "script but was not selected for patching" @@ -111,12 +109,8 @@ def segment_length(content: str, segment_name: str) -> int | None: def surgery_fingerprint() -> str: - """Fingerprint of this module's source, covering every behavioral input. - - Linker-script caches include it so an edit here invalidates them; hashing - the source over-invalidates on comment edits, which is the safe direction. - Native-toolchain-only, like ``segment_length``; no script twin. - """ + """Hash of this module's source; linker-script caches include it so an + edit here invalidates them.""" import inspect import sys diff --git a/tests/unit_tests/components/esp8266/test_build_surgery.py b/tests/unit_tests/components/esp8266/test_build_surgery.py index b1c3fd7be8..411a35eb96 100644 --- a/tests/unit_tests/components/esp8266/test_build_surgery.py +++ b/tests/unit_tests/components/esp8266/test_build_surgery.py @@ -2,8 +2,13 @@ from __future__ import annotations +import importlib.util +from pathlib import Path +import sys + import pytest +from esphome.components.esp8266 import build_surgery from esphome.components.esp8266.boards import BOARDS, ESP8266_BOARD_BUILD from esphome.components.esp8266.build_surgery import ( RATETABLE_RULE, @@ -110,11 +115,6 @@ def test_board_build_covers_every_board() -> None: def test_surgery_fingerprint_is_stable_and_sensitive(tmp_path) -> None: """The properties the linker-script cache depends on: the fingerprint is stable across calls and changes when the module's source changes.""" - import importlib.util - from pathlib import Path as _Path - import sys - - from esphome.components.esp8266 import build_surgery first = build_surgery.surgery_fingerprint() assert first == build_surgery.surgery_fingerprint() @@ -124,7 +124,7 @@ def test_surgery_fingerprint_is_stable_and_sensitive(tmp_path) -> None: # A modified copy of the module must fingerprint differently copy = tmp_path / "build_surgery_variant.py" copy.write_text( - _Path(build_surgery.__file__).read_text(encoding="utf-8") + Path(build_surgery.__file__).read_text(encoding="utf-8") + "\nEXTRA_BEHAVIORAL_INPUT = 1\n", encoding="utf-8", )