@@ -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+
64103TEST (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