Skip to content

Commit 5068f22

Browse files
committed
fix(mdns): Add test case for bool/NULL txt handling
1 parent 1ceb42c commit 5068f22

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

components/mdns/tests/unit_test/main/test_mdns.c

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,45 @@ TEST(mdns, init_deinit)
6161
esp_event_loop_delete_default();
6262
}
6363

64+
TEST(mdns, boolean_txt_null_value)
65+
{
66+
mdns_result_t *results = NULL;
67+
test_case_uses_tcpip();
68+
TEST_ASSERT_EQUAL(ESP_OK, esp_event_loop_create_default());
69+
TEST_ASSERT_EQUAL(ESP_OK, mdns_init());
70+
TEST_ASSERT_EQUAL(ESP_OK, mdns_hostname_set(MDNS_HOSTNAME));
71+
72+
TEST_ASSERT_EQUAL(ESP_OK, mdns_service_add(MDNS_INSTANCE, MDNS_SERVICE_NAME, MDNS_SERVICE_PROTO, MDNS_SERVICE_PORT, NULL, 0));
73+
74+
mdns_txt_item_t txt_data[] = {
75+
{"bool", NULL},
76+
{"key", "value"},
77+
};
78+
const size_t txt_data_count = sizeof(txt_data) / sizeof(txt_data[0]);
79+
TEST_ASSERT_EQUAL(ESP_OK, mdns_service_txt_set(MDNS_SERVICE_NAME, MDNS_SERVICE_PROTO, txt_data, txt_data_count));
80+
yield_to_all_priorities();
81+
82+
TEST_ASSERT_EQUAL(ESP_OK, mdns_lookup_selfhosted_service(NULL, MDNS_SERVICE_NAME, MDNS_SERVICE_PROTO, 1, &results));
83+
TEST_ASSERT_NOT_EQUAL(NULL, results);
84+
TEST_ASSERT_NOT_EQUAL(NULL, results->txt);
85+
TEST_ASSERT_EQUAL(txt_data_count, results->txt_count);
86+
87+
bool found_bool = false;
88+
for (size_t i = 0; i < results->txt_count; ++i) {
89+
if (strcmp(results->txt[i].key, "bool") == 0) {
90+
TEST_ASSERT_NOT_EQUAL(NULL, results->txt_value_len);
91+
TEST_ASSERT_EQUAL_UINT8(0, results->txt_value_len[i]);
92+
found_bool = true;
93+
}
94+
}
95+
TEST_ASSERT_TRUE(found_bool);
96+
mdns_query_results_free(results);
97+
98+
TEST_ASSERT_EQUAL(ESP_OK, mdns_service_remove(MDNS_SERVICE_NAME, MDNS_SERVICE_PROTO));
99+
mdns_free();
100+
esp_event_loop_delete_default();
101+
}
102+
64103
TEST(mdns, api_fails_with_expected_err)
65104
{
66105
mdns_txt_item_t serviceTxtData[CONFIG_MDNS_MAX_SERVICES] = { {NULL, NULL},
@@ -290,6 +329,7 @@ TEST_GROUP_RUNNER(mdns)
290329
RUN_TEST_CASE(mdns, init_deinit)
291330
RUN_TEST_CASE(mdns, add_remove_service)
292331
RUN_TEST_CASE(mdns, add_remove_deleg_service)
332+
RUN_TEST_CASE(mdns, boolean_txt_null_value)
293333

294334
}
295335

0 commit comments

Comments
 (0)