From bff4bb0faad5713dac9bf4e844794bf145fa2013 Mon Sep 17 00:00:00 2001 From: yinqingzhao Date: Wed, 25 Mar 2026 11:44:50 +0800 Subject: [PATCH] fix(ci): fix ci issue related to bss max idle test --- .../wifi_connect/main/test_bss_max_idle.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/components/esp_wifi/test_apps/wifi_connect/main/test_bss_max_idle.c b/components/esp_wifi/test_apps/wifi_connect/main/test_bss_max_idle.c index 2cde199e7d..d8fd71295a 100644 --- a/components/esp_wifi/test_apps/wifi_connect/main/test_bss_max_idle.c +++ b/components/esp_wifi/test_apps/wifi_connect/main/test_bss_max_idle.c @@ -53,7 +53,8 @@ typedef u16 __bitwise be16; #define TEST_DEFAULT_SSID "SSID_" CONFIG_IDF_TARGET TEST_SUFFIX_STR #define TEST_DEFAULT_PWD "PASS_" CONFIG_IDF_TARGET TEST_SUFFIX_STR #define TEST_DEFAULT_CHANNEL (6) -#define CONNECT_TIMEOUT_MS (8000) +/* STA association can take many seconds (e.g. WPA3 peer + scan). */ +#define STA_ASSOC_WAIT_MS (30000) #define MAXIMUM_RETRY (5) #define WIFI_DISCONNECT_EVENT (1) @@ -104,6 +105,9 @@ static void wifi_event_handler(void* arg, esp_event_base_t event_base, int32_t e break; case WIFI_EVENT_AP_STACONNECTED: ESP_LOGI(TAG, "Wi-Fi AP got a station connected"); + if (wifi_events) { + xEventGroupSetBits(wifi_events, WIFI_AP_STA_CONNECTED); + } break; case WIFI_EVENT_STA_CONNECTED: ESP_LOGI(TAG, "WIFI_EVENT_STA_CONNECTED"); @@ -230,9 +234,17 @@ static void test_bss_max_idle_sta(void) static void test_bss_max_idle_softap(void) { + s_keep_alive_received = false; start_wifi_as_softap(); - vTaskDelay((CONNECT_TIMEOUT_MS + MAX_IDLE_PERIOD * 1000) / portTICK_PERIOD_MS); + EventBits_t bits = xEventGroupWaitBits(wifi_events, + WIFI_AP_STA_CONNECTED, + pdFALSE, + pdFALSE, + pdMS_TO_TICKS(STA_ASSOC_WAIT_MS)); + TEST_ASSERT_MESSAGE(bits & WIFI_AP_STA_CONNECTED, "station did not connect to softap in time"); + + vTaskDelay(pdMS_TO_TICKS(MAX_IDLE_PERIOD * 1024)); TEST_ASSERT(s_keep_alive_received); stop_wifi();