[modbus] Simplify payload size validation in modbus_helpers (#15838)

This commit is contained in:
Rui Marinho
2026-04-20 14:24:07 +01:00
committed by GitHub
parent 73b8e8ac09
commit b72f5447c3
2 changed files with 79 additions and 57 deletions
@@ -0,0 +1,22 @@
#include <gtest/gtest.h>
#include "esphome/components/modbus/modbus_helpers.h"
namespace esphome::modbus::helpers {
TEST(ModbusHelpersTest, PayloadToNumberRejectsOffsetAtEndOfBuffer) {
const std::vector<uint8_t> data{0x12, 0x34};
EXPECT_EQ(payload_to_number(data, SensorValueType::U_WORD, 2, 0xFFFFFFFF), 0);
}
TEST(ModbusHelpersTest, PayloadToNumberRejectsTruncatedMultiRegisterValue) {
const std::vector<uint8_t> data{0x12, 0x34, 0x56};
EXPECT_EQ(payload_to_number(data, SensorValueType::U_DWORD, 0, 0xFFFFFFFF), 0);
}
TEST(ModbusHelpersTest, PayloadToNumberDecodesValidWord) {
const std::vector<uint8_t> data{0x12, 0x34};
EXPECT_EQ(payload_to_number(data, SensorValueType::U_WORD, 0, 0xFFFFFFFF), 0x1234);
}
} // namespace esphome::modbus::helpers