From 19c415f253a7681705887d18eb024ac65ec8bfc5 Mon Sep 17 00:00:00 2001 From: clydebarrow <2366188+clydebarrow@users.noreply.github.com> Date: Sun, 18 Oct 2026 18:26:32 +1100 Subject: [PATCH] [packet_interface] Use a local to_vector() in tests Co-Authored-By: Claude Opus 5.5 --- .../packet_interface/basic_addressing.cpp | 13 ++++++++++--- .../packet_interface/basic_fragmentation.cpp | 13 ++++++++++--- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/tests/components/packet_interface/basic_addressing.cpp b/tests/components/packet_interface/basic_addressing.cpp index 13726622907..05c796b23d3 100644 --- a/tests/components/packet_interface/basic_addressing.cpp +++ b/tests/components/packet_interface/basic_addressing.cpp @@ -9,6 +9,13 @@ namespace esphome::packet_interface::addressing_testing { +// Copies a packet into a vector, for comparing in tests +static std::vector to_vector(const esphome::packet_interface::PacketBuffer &data) { + std::vector result(data.size()); + data.copy_to(result.data(), result.size()); + return result; +} + using Packet = std::vector; static constexpr uint16_t BROADCAST = BasicAddressing::BROADCAST_ADDRESS; @@ -18,7 +25,7 @@ class MockLink : public PacketInterface { public: MockLink() { this->set_max_packet_size(64); } bool send_to_interface(const PacketBuffer &data, const PacketMetaData &) override { - this->sent.push_back(data.to_vector()); + this->sent.push_back(to_vector(data)); return true; } void inject(const Packet &packet) { this->on_receive_from_interface_(PacketBuffer(packet), {}); } @@ -31,7 +38,7 @@ struct Port { Port(BasicAddressing *addressing, uint16_t destination, bool only_port) { this->port = std::make_unique(addressing, destination, only_port); this->port->add_packet_interface_listener([this](const PacketBuffer &data, const PacketMetaData &meta_data) { - this->received.push_back(data.to_vector()); + this->received.push_back(to_vector(data)); this->sources.push_back(meta_data.source_address); }); } @@ -165,7 +172,7 @@ class AddressingReliabilityTest : public ::testing::Test { struct ReliablePort { explicit ReliablePort(AddressingPort *port) : hdlc(port) { this->hdlc.add_packet_interface_listener( - [this](const PacketBuffer &data, const PacketMetaData &) { this->received.push_back(data.to_vector()); }); + [this](const PacketBuffer &data, const PacketMetaData &) { this->received.push_back(to_vector(data)); }); this->hdlc.setup(); } void send(const Packet &data) { this->hdlc.send_to_interface(PacketBuffer(data), {}); } diff --git a/tests/components/packet_interface/basic_fragmentation.cpp b/tests/components/packet_interface/basic_fragmentation.cpp index 2feab7ac2f0..372f6670e35 100644 --- a/tests/components/packet_interface/basic_fragmentation.cpp +++ b/tests/components/packet_interface/basic_fragmentation.cpp @@ -8,6 +8,13 @@ namespace esphome::packet_interface::fragmentation_testing { +// Copies a packet into a vector, for comparing in tests +static std::vector to_vector(const esphome::packet_interface::PacketBuffer &data) { + std::vector result(data.size()); + data.copy_to(result.data(), result.size()); + return result; +} + using Packet = std::vector; // A link layer that records what is sent, with a limited send capacity @@ -15,7 +22,7 @@ class MockLink : public PacketInterface { public: MockLink() { this->set_max_packet_size(12); } bool send_to_interface(const PacketBuffer &data, const PacketMetaData &) override { - this->sent.push_back(data.to_vector()); + this->sent.push_back(to_vector(data)); return true; } size_t get_send_capacity() const override { return this->capacity; } @@ -32,7 +39,7 @@ class MockLink : public PacketInterface { struct Peer { explicit Peer(PacketInterface *lower) : fragmentation(lower, 100) { this->fragmentation.add_packet_interface_listener( - [this](const PacketBuffer &data, const PacketMetaData &) { this->received.push_back(data.to_vector()); }); + [this](const PacketBuffer &data, const PacketMetaData &) { this->received.push_back(to_vector(data)); }); this->fragmentation.setup(); } bool send(const Packet &data) { return this->fragmentation.send_to_interface(PacketBuffer(data), {}); } @@ -183,7 +190,7 @@ TEST_F(BasicFragmentationTest, OversizedSingleFragmentDropped) { BasicFragmentation fragmentation(&this->link_a, 4); std::vector received; fragmentation.add_packet_interface_listener( - [&received](const PacketBuffer &data, const PacketMetaData &) { received.push_back(data.to_vector()); }); + [&received](const PacketBuffer &data, const PacketMetaData &) { received.push_back(to_vector(data)); }); fragmentation.setup(); this->link_a.inject({0x01, 0x80, 1, 2, 3, 4, 5}); EXPECT_TRUE(received.empty());