add test for max value

This commit is contained in:
Nicu Hodos 2025-09-30 16:26:26 +02:00
parent 4ab725a59e
commit 4ea9c83ff9
2 changed files with 13 additions and 3 deletions

View File

@ -6,16 +6,16 @@
#define MASK_STATE 0x1
#define MASK_TYPE 0xF
#define ID(value) (value & 0x1F)
#define ID(value) ((unsigned long)value & MASK_ID)
#define VCC(value) (((unsigned long)value & MASK_VCC) << 5)
#define TEMP(value) (((unsigned long)value & MASK_VALUE) << 18)
#define HUMIDITY(value) (((unsigned long)value & MASK_VALUE) << 18)
#define VALUE(value) (((unsigned long)value & MASK_VALUE) << 18)
#define STATE(value) ((value & MASK_STATE) << 27)
#define STATE(value) (((unsigned long)value & MASK_STATE) << 27)
#define TYPE(value) (((unsigned long)value & MASK_TYPE) << 28)
#define GET_TYPE(value) (((unsigned long)value >> 28) & MASK_TYPE)
#define GET_STATE(value) ((value >> 27) & MASK_STATE)
#define GET_STATE(value) (((unsigned long)value >> 27) & MASK_STATE)
#define GET_TEMP(value) (((unsigned long)value >> 18) & MASK_VALUE)
#define GET_HUMIDITY(value) (((unsigned long)value >> 18) & MASK_VALUE)
#define GET_VALUE(value) (((unsigned long)value >> 18) & MASK_VALUE)

View File

@ -24,6 +24,15 @@ void test_max_temp(void) {
TEST_ASSERT_EQUAL(102.3, sensor["temperature"]);
}
void test_max_value(void) {
StaticJsonDocument<200> jsonDoc;
unsigned long value = VALUE(1023) | TYPE(SensorType::GENERIC);
TEST_ASSERT_EQUAL(true, buildSensorJson(value, jsonDoc));
JsonObject sensor = jsonDoc["sensor"];
TEST_ASSERT_EQUAL(1023, sensor["value"]);
}
void test_overflow_value(void) {
StaticJsonDocument<200> jsonDoc;
unsigned long value = VALUE(1024) | TYPE(SensorType::GENERIC);
@ -101,6 +110,7 @@ int main(int argc, char **argv) {
UNITY_BEGIN();
RUN_TEST(test_unknown_sensor_type);
RUN_TEST(test_max_temp);
RUN_TEST(test_max_value);
RUN_TEST(test_overflow_value);
RUN_TEST(test_max_voltage);
RUN_TEST(test_overflow_voltage);