feat(api): system/info sagt, ob der sACN-Empfaenger laeuft
Ein toter Empfangs-Task war von aussen nicht von "es sendet gerade niemand" zu unterscheiden: beides meldete nur active=false. "multicast" half nicht weiter - es zeigt den gemerkten Erfolg des LETZTEN Beitritts und bleibt true, auch wenn der Socket laengst zu ist. Genau dieser Fall trat am Montana-Black-Shield auf (2026-09-26, direkt nach Migration und Onboarding) und hat eine halbe Stunde Suche gekostet, an deren Ende die Ursache immer noch offen war. nl_sacn_running() gab es da schon, es wurde nur nirgends ausgeliefert. Zwei Tests: der bestehende prueft running=true mit, ein neuer haelt den toten Task fest.
This commit is contained in:
@@ -466,12 +466,27 @@ static void test_info_exposes_sacn_state(void)
|
||||
{
|
||||
fake_info.sacn_active = true;
|
||||
fake_info.sacn_joined = true;
|
||||
fake_info.sacn_running = true;
|
||||
fake_settings.sacn_universe = 5;
|
||||
call(NL_HTTP_GET, "/api/v1/system/info", NULL, NULL);
|
||||
TEST_ASSERT_EQUAL_INT(200, resp.status);
|
||||
TEST_ASSERT_TRUE(cJSON_IsTrue(sacn_field("active")));
|
||||
TEST_ASSERT_EQUAL_INT(5, (int)cJSON_GetNumberValue(sacn_field("universe")));
|
||||
TEST_ASSERT_TRUE(cJSON_IsTrue(sacn_field("multicast")));
|
||||
TEST_ASSERT_TRUE(cJSON_IsTrue(sacn_field("running")));
|
||||
}
|
||||
|
||||
/* Ein toter Empfangs-Task sah von aussen genauso aus wie "es sendet gerade niemand":
|
||||
* beides meldete nur active=false. Beim Montana-Black-Shield (2026-09-26) hat das eine
|
||||
* halbe Stunde Suche gekostet - "multicast" half nicht weiter, weil es den gemerkten
|
||||
* Erfolg des LETZTEN Beitritts zeigt und auch dann true bleibt, wenn der Socket laengst
|
||||
* zu ist. */
|
||||
static void test_info_reports_a_dead_sacn_task(void)
|
||||
{
|
||||
fake_info.sacn_running = false;
|
||||
call(NL_HTTP_GET, "/api/v1/system/info", NULL, NULL);
|
||||
TEST_ASSERT_EQUAL_INT(200, resp.status);
|
||||
TEST_ASSERT_FALSE(cJSON_IsTrue(sacn_field("running")));
|
||||
}
|
||||
|
||||
/* --- system/command --- */
|
||||
@@ -610,6 +625,7 @@ int main(void)
|
||||
RUN_TEST(test_put_sacn_start_slot_must_leave_room_for_all_slots);
|
||||
RUN_TEST(test_put_sacn_start_slot_limit_follows_the_board);
|
||||
RUN_TEST(test_info_exposes_sacn_state);
|
||||
RUN_TEST(test_info_reports_a_dead_sacn_task);
|
||||
RUN_TEST(test_commands);
|
||||
return UNITY_END();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user