Revive backend-only builds, the slot ledger, and the table gate

This commit is contained in:
J. Nick Koston
2026-08-09 01:33:45 -05:00
parent 06a52f682f
commit 269d52ac2e
16 changed files with 146 additions and 66 deletions
@@ -177,12 +177,22 @@ def test_rp2_rejects_esp32_only_keys_by_name(
bluetooth_proxy.CONFIG_SCHEMA({"connections": [{}]})
def test_bluetooth_connection_auto_load_covers_its_includes() -> None:
# Every backend builds on ble_device_base alone; the Bluedroid backend
# talks to IDF directly, so esp32_ble_client is no longer in the closure.
for platform in ("esp32", "rp2", None):
_set_platform(platform)
assert bluetooth_connection.AUTO_LOAD() == ["ble_device_base"]
def test_bluetooth_connection_auto_load_matches_the_platform_stack() -> None:
# The backend registers with its platform BLE stack, so that dependency
# lives here and consumers (proxy, radon_eye_rd200) stay platform-blind;
# the platform-less arm is the union for manifest-resolving tooling.
_set_platform("esp32")
assert bluetooth_connection.AUTO_LOAD() == ["ble_device_base", "esp32_ble_tracker"]
_set_platform("rp2")
assert bluetooth_connection.AUTO_LOAD() == ["ble_device_base", "rp2040_ble"]
_set_platform("ln882x")
assert bluetooth_connection.AUTO_LOAD() == ["ble_device_base"]
_set_platform(None)
assert bluetooth_connection.AUTO_LOAD() == [
"ble_device_base",
"esp32_ble_tracker",
"rp2040_ble",
]
def test_every_registered_hub_platform_has_a_schema_arm() -> None:
@@ -193,9 +203,9 @@ def test_every_registered_hub_platform_has_a_schema_arm() -> None:
registered = set(bluetooth_connection.HUB_MAX_CONNECTIONS)
assert registered <= set(bluetooth_proxy._GATT_HUB_SCHEMAS)
assert registered <= set(bluetooth_proxy._HUB_PLATFORMS)
# Hub platforms must also be in the backend registry the shared codegen
# Hub platforms must also be in the backend registry the shared consumer
# helpers dispatch on.
assert registered <= set(bluetooth_connection._PLATFORM_BACKENDS)
assert registered <= set(bluetooth_connection.GATT_CLIENT_PLATFORMS)
# The outer walkable schema's bound must stay the loosest platform cap.
assert (
max(bluetooth_connection.HUB_MAX_CONNECTIONS.values())