From 7f42c31252949e28736b36760957eb7d764418dd Mon Sep 17 00:00:00 2001 From: David Cermak Date: Fri, 4 Feb 2022 18:40:21 +0100 Subject: [PATCH] ci/mdsn: Fix example test on ethernet runners * Ethernet kit uses GPIO0 for ref-clock, so the test button hits constantly * Add a freeRTOS delay when checking result on assync queries * Original commit: espressif/esp-idf@afe7ab3b2c1e8ddc8196abb1009d5a2b43a78a4d --- examples/protocols/mdns/main/Kconfig.projbuild | 14 ++++++++++++++ examples/protocols/mdns/main/mdns_example_main.c | 4 ++-- examples/protocols/mdns/mdns_example_test.py | 2 +- .../mdns/{sdkconfig.ci => sdkconfig.ci.eth_kit} | 2 ++ 4 files changed, 19 insertions(+), 3 deletions(-) rename examples/protocols/mdns/{sdkconfig.ci => sdkconfig.ci.eth_kit} (89%) diff --git a/examples/protocols/mdns/main/Kconfig.projbuild b/examples/protocols/mdns/main/Kconfig.projbuild index ca2f2bbf3..bc4b1a055 100644 --- a/examples/protocols/mdns/main/Kconfig.projbuild +++ b/examples/protocols/mdns/main/Kconfig.projbuild @@ -1,5 +1,12 @@ menu "Example Configuration" + config MDNS_GPIO_RANGE_MAX + int + default 33 if IDF_TARGET_ESP32 + default 46 if IDF_TARGET_ESP32S2 + default 19 if IDF_TARGET_ESP32C3 + default 48 if IDF_TARGET_ESP32S3 + config MDNS_HOSTNAME string "mDNS Hostname" default "esp32-mdns" @@ -34,4 +41,11 @@ menu "Example Configuration" If enabled, a portion of MAC address is added to the hostname, this is used for evaluation of tests in CI + config MDNS_BUTTON_GPIO + int "Button GPIO to trigger querries" + range 0 MDNS_GPIO_RANGE_MAX + default 0 + help + Set the GPIO number used as mDNS test button + endmenu diff --git a/examples/protocols/mdns/main/mdns_example_main.c b/examples/protocols/mdns/main/mdns_example_main.c index 94e9140ea..0b5e96245 100644 --- a/examples/protocols/mdns/main/mdns_example_main.c +++ b/examples/protocols/mdns/main/mdns_example_main.c @@ -22,7 +22,7 @@ #define EXAMPLE_MDNS_INSTANCE CONFIG_MDNS_INSTANCE -#define EXAMPLE_BUTTON_GPIO 0 +#define EXAMPLE_BUTTON_GPIO CONFIG_MDNS_BUTTON_GPIO static const char * TAG = "mdns-test"; static char * generate_hostname(void); @@ -174,7 +174,6 @@ static void query_mdns_hosts_async(const char * host_name) ESP_LOGI(TAG, "Query both A and AAA: %s.local", host_name); mdns_search_once_t *s_a = mdns_query_async_new(host_name, NULL, NULL, MDNS_TYPE_A, 1000, 1, NULL); - mdns_query_async_delete(s_a); mdns_search_once_t *s_aaaa = mdns_query_async_new(host_name, NULL, NULL, MDNS_TYPE_AAAA, 1000, 1, NULL); while (s_a || s_aaaa) { if (s_a && check_and_print_result(s_a)) { @@ -187,6 +186,7 @@ static void query_mdns_hosts_async(const char * host_name) mdns_query_async_delete(s_aaaa); s_aaaa = NULL; } + vTaskDelay(50 / portTICK_PERIOD_MS); } } diff --git a/examples/protocols/mdns/mdns_example_test.py b/examples/protocols/mdns/mdns_example_test.py index fbd062a43..f06707718 100644 --- a/examples/protocols/mdns/mdns_example_test.py +++ b/examples/protocols/mdns/mdns_example_test.py @@ -114,7 +114,7 @@ def test_examples_protocol_mdns(env, extra_data): 3. check the mdns name is accessible 4. check DUT output if mdns advertized host is resolved """ - dut1 = env.get_dut('mdns-test', 'examples/protocols/mdns', dut_class=ttfw_idf.ESP32DUT) + dut1 = env.get_dut('mdns-test', 'examples/protocols/mdns', dut_class=ttfw_idf.ESP32DUT, app_config_name='eth_kit') # check and log bin size binary_file = os.path.join(dut1.app.binary_path, 'mdns_test.bin') bin_size = os.path.getsize(binary_file) diff --git a/examples/protocols/mdns/sdkconfig.ci b/examples/protocols/mdns/sdkconfig.ci.eth_kit similarity index 89% rename from examples/protocols/mdns/sdkconfig.ci rename to examples/protocols/mdns/sdkconfig.ci.eth_kit index 65d9a2fdc..703b4543e 100644 --- a/examples/protocols/mdns/sdkconfig.ci +++ b/examples/protocols/mdns/sdkconfig.ci.eth_kit @@ -1,3 +1,4 @@ +CONFIG_IDF_TARGET="esp32" CONFIG_MDNS_RESOLVE_TEST_SERVICES=y CONFIG_MDNS_ADD_MAC_TO_HOSTNAME=y CONFIG_MDNS_PUBLISH_DELEGATE_HOST=y @@ -11,3 +12,4 @@ CONFIG_EXAMPLE_ETH_MDIO_GPIO=18 CONFIG_EXAMPLE_ETH_PHY_RST_GPIO=5 CONFIG_EXAMPLE_ETH_PHY_ADDR=1 CONFIG_EXAMPLE_CONNECT_IPV6=y +CONFIG_MDNS_BUTTON_GPIO=32