feat: add Last_Restart_Reason property support to Device object (#1323)

This commit is contained in:
Steve Karg
2026-04-29 13:36:23 -05:00
committed by GitHub
parent fe74113318
commit 755233298b
5 changed files with 140 additions and 5 deletions
@@ -464,6 +464,38 @@ static void testDevice(void)
zassert_true(property_list.Required.count > 0, NULL);
}
}
/**
* @brief Test Device_Last_Restart_Reason_Set() and Device_Last_Restart_Reason()
*/
static void test_Device_Last_Restart_Reason(void)
{
BACNET_RESTART_REASON reason;
bool status;
unsigned i;
Device_Init(NULL);
/* default value after init shall be RESTART_REASON_UNKNOWN */
reason = Device_Last_Restart_Reason();
zassert_equal(reason, RESTART_REASON_UNKNOWN, NULL);
/* loop over every valid value (0..BACNET_RESTART_REASON_MAX-1) */
for (i = 0; i < BACNET_RESTART_REASON_MAX; i++) {
reason = (BACNET_RESTART_REASON)i;
status = Device_Last_Restart_Reason_Set(reason);
zassert_true(status, "reason=%u rejected", i);
zassert_equal(
Device_Last_Restart_Reason(), reason, "reason=%u mismatch", i);
}
/* BACNET_RESTART_REASON_MAX (256) is out-of-range and must be rejected;
* the previously stored value shall be unchanged */
status = Device_Last_Restart_Reason_Set(BACNET_RESTART_REASON_MAX);
zassert_false(status, NULL);
zassert_equal(
Device_Last_Restart_Reason(),
(BACNET_RESTART_REASON)(BACNET_RESTART_REASON_MAX - 1), NULL);
}
/**
* @}
*/
@@ -475,7 +507,8 @@ void test_main(void)
{
ztest_test_suite(
device_tests, ztest_unit_test(testDevice),
ztest_unit_test(test_Device_Data_Sharing));
ztest_unit_test(test_Device_Data_Sharing),
ztest_unit_test(test_Device_Last_Restart_Reason));
ztest_run_test_suite(device_tests);
}