mirror of
https://github.com/esphome/esphome.git
synced 2026-10-13 01:32:49 +00:00
[udp] Keep constant write payloads in shared flash tables (#20268)
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
esphome:
|
||||
name: test
|
||||
|
||||
esp8266:
|
||||
board: d1_mini
|
||||
|
||||
wifi:
|
||||
ssid: test
|
||||
password: password1
|
||||
|
||||
udp:
|
||||
addresses:
|
||||
- 10.0.0.1
|
||||
|
||||
button:
|
||||
- platform: template
|
||||
name: send
|
||||
on_press:
|
||||
- udp.write: [0xAA, 0x55, 0x01, 0x02]
|
||||
- udp.write: [0xAA, 0x55, 0x01, 0x02]
|
||||
- udp.write: ""
|
||||
- udp.write: !lambda return {0x10, 0x20};
|
||||
@@ -0,0 +1,17 @@
|
||||
"""Tests for the udp.write action codegen."""
|
||||
|
||||
from collections.abc import Callable
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def test_write_payloads_share_a_progmem_table(
|
||||
generate_main: Callable[[str | Path], str],
|
||||
component_config_path: Callable[[str], Path],
|
||||
) -> None:
|
||||
"""Identical constant payloads share one flash table; an empty one needs none."""
|
||||
main_cpp = generate_main(component_config_path("udp_write.yaml"))
|
||||
|
||||
assert main_cpp.count("udp_data[] PROGMEM = {0xAA, 0x55, 0x01, 0x02};") == 1
|
||||
assert main_cpp.count("->set_data_static(udp_data, 4);") == 2
|
||||
assert "->set_data_static(nullptr, 0);" in main_cpp
|
||||
assert "->set_data_template(" in main_cpp
|
||||
Reference in New Issue
Block a user