mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-02 11:10:54 +03:00
Merge branch 'fix/eloop-wifi-deinit-leak-delay' into 'master'
test(wpa_supplicant): wait for the idle task after esp_wifi_deinit in eloop unit test Closes IDFCI-11307 and IDFCI-12170 See merge request espressif/esp-idf!52111
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileCopyrightText: 2022-2026 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
||||
*/
|
||||
@@ -8,6 +8,8 @@
|
||||
#include "esp_log.h"
|
||||
#include "test_utils.h"
|
||||
#include "unity_test_utils.h"
|
||||
#include "freertos/FreeRTOS.h"
|
||||
#include "freertos/task.h"
|
||||
|
||||
#define TAG "test_wifi"
|
||||
#define EMPH_STR(s) "****** "s" ******"
|
||||
@@ -36,6 +38,8 @@ TEST_CASE("wifi set country code", "[wifi_init]")
|
||||
|
||||
ESP_LOGI(TAG, EMPH_STR("esp_wifi_deinit"));
|
||||
TEST_ESP_OK(esp_wifi_deinit());
|
||||
/* Let the idle task reclaim the deleted Wi-Fi task's stack and TCB before the leak check. */
|
||||
vTaskDelay(pdMS_TO_TICKS(300));
|
||||
|
||||
ESP_LOGI(TAG, EMPH_STR("esp_wifi_init"));
|
||||
TEST_ESP_OK(esp_wifi_init(&cfg));
|
||||
@@ -56,7 +60,8 @@ TEST_CASE("wifi set country code", "[wifi_init]")
|
||||
|
||||
ESP_LOGI(TAG, EMPH_STR("esp_wifi_deinit"));
|
||||
TEST_ESP_OK(esp_wifi_deinit());
|
||||
vTaskDelay(1);
|
||||
/* Let the idle task reclaim the deleted Wi-Fi task's stack and TCB before the leak check. */
|
||||
vTaskDelay(pdMS_TO_TICKS(300));
|
||||
|
||||
ESP_LOGI(TAG, "test passed...");
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileCopyrightText: 2022-2026 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
||||
*/
|
||||
@@ -60,7 +60,8 @@ static void wifi_driver_can_start_on_APP_CPU_task(void* arg)
|
||||
TEST_ESP_OK(esp_wifi_init(&cfg));
|
||||
ESP_LOGI(TAG, EMPH_STR("esp_wifi_deinit..."));
|
||||
TEST_ESP_OK(esp_wifi_deinit());
|
||||
vTaskDelay(1);
|
||||
/* Let the idle task reclaim the deleted Wi-Fi task's stack and TCB before the leak check. */
|
||||
vTaskDelay(pdMS_TO_TICKS(300));
|
||||
ESP_LOGI(TAG, EMPH_STR("event_deinit"));
|
||||
TEST_ESP_OK(event_deinit());
|
||||
ESP_LOGI(TAG, "exit task...");
|
||||
@@ -99,7 +100,8 @@ TEST_CASE("Calling esp_wifi_stop() with start", "[wifi_init]")
|
||||
TEST_ESP_OK(esp_wifi_stop());
|
||||
ESP_LOGI(TAG, EMPH_STR("esp_wifi_deinit"));
|
||||
TEST_ESP_OK(esp_wifi_deinit());
|
||||
vTaskDelay(1);
|
||||
/* Let the idle task reclaim the deleted Wi-Fi task's stack and TCB before the leak check. */
|
||||
vTaskDelay(pdMS_TO_TICKS(300));
|
||||
ESP_LOGI(TAG, EMPH_STR("event_deinit"));
|
||||
TEST_ESP_OK(event_deinit());
|
||||
ESP_LOGI(TAG, "test passed...");
|
||||
@@ -116,7 +118,8 @@ TEST_CASE("Calling esp_wifi_stop() without start", "[wifi_init]")
|
||||
TEST_ESP_OK(esp_wifi_stop());
|
||||
ESP_LOGI(TAG, EMPH_STR("esp_wifi_deinit"));
|
||||
TEST_ESP_OK(esp_wifi_deinit());
|
||||
vTaskDelay(1);
|
||||
/* Let the idle task reclaim the deleted Wi-Fi task's stack and TCB before the leak check. */
|
||||
vTaskDelay(pdMS_TO_TICKS(300));
|
||||
ESP_LOGI(TAG, EMPH_STR("event_deinit"));
|
||||
TEST_ESP_OK(event_deinit());
|
||||
ESP_LOGI(TAG, "test passed...");
|
||||
@@ -137,7 +140,8 @@ TEST_CASE("Calling esp_wifi_deinit() without stop", "[wifi_init]")
|
||||
TEST_ESP_OK(esp_wifi_stop());
|
||||
ESP_LOGI(TAG, EMPH_STR("esp_wifi_deinit"));
|
||||
TEST_ESP_OK(esp_wifi_deinit());
|
||||
vTaskDelay(1);
|
||||
/* Let the idle task reclaim the deleted Wi-Fi task's stack and TCB before the leak check. */
|
||||
vTaskDelay(pdMS_TO_TICKS(300));
|
||||
ESP_LOGI(TAG, EMPH_STR("event_deinit"));
|
||||
TEST_ESP_OK(event_deinit());
|
||||
ESP_LOGI(TAG, "test passed...");
|
||||
@@ -154,7 +158,8 @@ TEST_CASE("Calling esp_wifi_connect() without start", "[wifi_init]")
|
||||
TEST_ESP_ERR(ESP_ERR_WIFI_NOT_STARTED, esp_wifi_connect());
|
||||
ESP_LOGI(TAG, EMPH_STR("esp_wifi_deinit"));
|
||||
TEST_ESP_OK(esp_wifi_deinit());
|
||||
vTaskDelay(1);
|
||||
/* Let the idle task reclaim the deleted Wi-Fi task's stack and TCB before the leak check. */
|
||||
vTaskDelay(pdMS_TO_TICKS(300));
|
||||
ESP_LOGI(TAG, EMPH_STR("event_deinit"));
|
||||
TEST_ESP_OK(event_deinit());
|
||||
ESP_LOGI(TAG, "test passed...");
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileCopyrightText: 2025-2026 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
||||
*/
|
||||
@@ -11,6 +11,8 @@
|
||||
#include "esp_wifi.h"
|
||||
|
||||
#include "esp_heap_caps.h"
|
||||
#include "freertos/FreeRTOS.h"
|
||||
#include "freertos/task.h"
|
||||
|
||||
// Some resources are lazy allocated in wifi and lwip
|
||||
// #define TEST_MEMORY_LEAK_THRESHOLD (-1546)
|
||||
@@ -39,6 +41,8 @@ void setUp(void)
|
||||
void tearDown(void)
|
||||
{
|
||||
ESP_ERROR_CHECK(esp_wifi_deinit());
|
||||
/* Let the idle task reclaim the deleted Wi-Fi task's stack and TCB before the leak check. */
|
||||
vTaskDelay(pdMS_TO_TICKS(300));
|
||||
size_t after_free_8bit = heap_caps_get_free_size(MALLOC_CAP_8BIT);
|
||||
size_t after_free_32bit = heap_caps_get_free_size(MALLOC_CAP_32BIT);
|
||||
check_leak(before_free_8bit, after_free_8bit, "8BIT");
|
||||
|
||||
Reference in New Issue
Block a user