mirror of
https://github.com/esphome/esphome.git
synced 2026-08-23 06:36:23 +00:00
Merge branch 'esp8266-native-build-surgery' into esp8266-native-toolchain-plumbing
This commit is contained in:
@@ -2462,3 +2462,28 @@ def test_copy_src_tree_ignores_removed_generated_file(
|
||||
# file was removed and regenerated, not that it triggered sources_changed.
|
||||
new_json = json.loads(build_info_json_path.read_text())
|
||||
assert new_json["config_hash"] == 0xDEADBEEF
|
||||
|
||||
|
||||
def test_build_info_stale_branches(tmp_path: Path) -> None:
|
||||
"""Missing files, an unreadable JSON, a hash or version mismatch each
|
||||
regenerate; a matching record does not."""
|
||||
import json as json_mod
|
||||
|
||||
from esphome.const import __version__
|
||||
from esphome.writer import _build_info_stale
|
||||
|
||||
h = tmp_path / "build_info_data.h"
|
||||
cpp = tmp_path / "build_info_data.cpp"
|
||||
info = tmp_path / "build_info.json"
|
||||
assert _build_info_stale(h, cpp, info, 1) is True # files missing
|
||||
h.write_text("")
|
||||
cpp.write_text("")
|
||||
assert _build_info_stale(h, cpp, info, 1) is True # JSON unreadable
|
||||
info.write_text("not json")
|
||||
assert _build_info_stale(h, cpp, info, 1) is True
|
||||
info.write_text(json_mod.dumps({"config_hash": 2, "esphome_version": __version__}))
|
||||
assert _build_info_stale(h, cpp, info, 1) is True # hash mismatch
|
||||
info.write_text(json_mod.dumps({"config_hash": 1, "esphome_version": "0.0.0"}))
|
||||
assert _build_info_stale(h, cpp, info, 1) is True # version mismatch
|
||||
info.write_text(json_mod.dumps({"config_hash": 1, "esphome_version": __version__}))
|
||||
assert _build_info_stale(h, cpp, info, 1) is False
|
||||
|
||||
Reference in New Issue
Block a user