|
|
@@ -1,5 +1,5 @@
|
|
|
/*
|
|
|
- * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
|
|
|
+ * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
|
|
|
*
|
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
|
*/
|
|
|
@@ -9,6 +9,7 @@
|
|
|
#include "freertos/semphr.h"
|
|
|
#include "unity.h"
|
|
|
#include "test_utils.h"
|
|
|
+#include "esp_system.h"
|
|
|
|
|
|
/* If assertions aren't set to fail this code still crashes, but not with an abort... */
|
|
|
#if CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER && !CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE
|
|
|
@@ -20,11 +21,12 @@ static void mutex_release_task(void* arg)
|
|
|
TEST_FAIL_MESSAGE("should not be reached");
|
|
|
}
|
|
|
|
|
|
-/*
|
|
|
-Reset tests are temporarily ignored until the test app supports running them separately.
|
|
|
-IDF-6096
|
|
|
-*/
|
|
|
-TEST_CASE("mutex released not by owner causes an assert", "[freertos][ignore][reset=assert,SW_CPU_RESET]")
|
|
|
+static void check_reset_reason_panic(void)
|
|
|
+{
|
|
|
+ TEST_ASSERT_EQUAL(ESP_RST_PANIC, esp_reset_reason());
|
|
|
+}
|
|
|
+
|
|
|
+static void do_mutex_release_assert(void)
|
|
|
{
|
|
|
SemaphoreHandle_t mutex = xSemaphoreCreateMutex();
|
|
|
xSemaphoreTake(mutex, portMAX_DELAY);
|
|
|
@@ -32,4 +34,8 @@ TEST_CASE("mutex released not by owner causes an assert", "[freertos][ignore][re
|
|
|
vTaskDelay(1);
|
|
|
}
|
|
|
|
|
|
+TEST_CASE_MULTIPLE_STAGES("mutex released not by owner causes an assert", "[freertos][reset=assert,SW_CPU_RESET]",
|
|
|
+ do_mutex_release_assert,
|
|
|
+ check_reset_reason_panic)
|
|
|
+
|
|
|
#endif
|