From 638b22ef4e8f108689bd09835c8c06620ceebd87 Mon Sep 17 00:00:00 2001 From: Marius Vikhammer Date: Fri, 17 Jan 2025 12:07:07 +0800 Subject: [PATCH] test(freertos): changed freertos tests to compile even if no gptimer --- .../event_groups/test_freertos_eventgroups.c | 2 ++ .../kernel/tasks/test_freertos_task_notify.c | 9 ++++++--- .../freertos/kernel/tasks/test_task_delay.c | 2 ++ .../kernel/tasks/test_task_suspend_resume.c | 4 ++++ .../tasks/test_vTaskSuspendAll_xTaskResumeAll.c | 15 ++++++++++++++- .../components/test_utils/CMakeLists.txt | 2 +- 6 files changed, 29 insertions(+), 5 deletions(-) diff --git a/components/freertos/test_apps/freertos/kernel/event_groups/test_freertos_eventgroups.c b/components/freertos/test_apps/freertos/kernel/event_groups/test_freertos_eventgroups.c index 00ff6980c9..f1101360b2 100644 --- a/components/freertos/test_apps/freertos/kernel/event_groups/test_freertos_eventgroups.c +++ b/components/freertos/test_apps/freertos/kernel/event_groups/test_freertos_eventgroups.c @@ -185,6 +185,7 @@ TEST_CASE("FreeRTOS Event Groups do not cause priority inversion when higher pri /*-----------------Test case for event group trace facilities-----------------*/ #ifdef CONFIG_FREERTOS_USE_TRACE_FACILITY +#if SOC_GPTIMER_SUPPORTED /* * Test event group Trace Facility functions such as * xEventGroupClearBitsFromISR(), xEventGroupSetBitsFromISR() @@ -261,4 +262,5 @@ TEST_CASE("FreeRTOS Event Group ISR", "[freertos]") vSemaphoreDelete(done_sem); vTaskDelay(10); //Give time for idle task to clear up deleted tasks } +#endif //SOC_GPTIMER_SUPPORTED #endif //CONFIG_FREERTOS_USE_TRACE_FACILITY diff --git a/components/freertos/test_apps/freertos/kernel/tasks/test_freertos_task_notify.c b/components/freertos/test_apps/freertos/kernel/tasks/test_freertos_task_notify.c index 68f71497c1..ade25fa336 100644 --- a/components/freertos/test_apps/freertos/kernel/tasks/test_freertos_task_notify.c +++ b/components/freertos/test_apps/freertos/kernel/tasks/test_freertos_task_notify.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -21,6 +21,8 @@ #include "unity.h" #include "test_utils.h" +#if SOC_GPTIMER_SUPPORTED + #define NO_OF_NOTIFS 4 #define NO_OF_TASKS 2 //Sender and receiver #define MESSAGE 0xFF @@ -196,9 +198,10 @@ TEST_CASE("Test Task_Notify", "[freertos]") TEST_ESP_OK(gptimer_del_timer(gptimers[i])); } } +#endif //SOC_GPTIMER_SUPPORTED /* Test causes asserts, so it cannot be run as a normal unity test case. - Test case is ran as a seperate test case in test_task_notify_too_high_index_fails + Test case is ran as a separate test case in test_task_notify_too_high_index_fails */ TEST_CASE("Notify too high index fails", "[ignore]") { @@ -207,7 +210,7 @@ TEST_CASE("Notify too high index fails", "[ignore]") } /* Test causes asserts, so it cannot be run as a normal unity test case. - Test case is ran as a seperate test case in test_task_notify_wait_too_high_index_fails + Test case is ran as a separate test case in test_task_notify_wait_too_high_index_fails */ TEST_CASE("Notify Wait too high index fails", "[ignore]") { diff --git a/components/freertos/test_apps/freertos/kernel/tasks/test_task_delay.c b/components/freertos/test_apps/freertos/kernel/tasks/test_task_delay.c index 8451d3fbf6..e5128d94de 100644 --- a/components/freertos/test_apps/freertos/kernel/tasks/test_task_delay.c +++ b/components/freertos/test_apps/freertos/kernel/tasks/test_task_delay.c @@ -13,6 +13,7 @@ #include "portTestMacro.h" /* ------------------------------------------------------------------------------------------------------------------ */ +#if SOC_GPTIMER_SUPPORTED /* Test vTaskDelay @@ -178,3 +179,4 @@ TEST_CASE("Tasks: Test vTaskDelayUntil", "[freertos]") } #endif /* ( INCLUDE_xTaskDelayUntil == 1 ) */ +#endif //SOC_GPTIMER_SUPPORTED diff --git a/components/freertos/test_apps/freertos/kernel/tasks/test_task_suspend_resume.c b/components/freertos/test_apps/freertos/kernel/tasks/test_task_suspend_resume.c index 0df02840a8..b7c8ffa883 100644 --- a/components/freertos/test_apps/freertos/kernel/tasks/test_task_suspend_resume.c +++ b/components/freertos/test_apps/freertos/kernel/tasks/test_task_suspend_resume.c @@ -118,6 +118,8 @@ TEST_CASE("Suspend the current running task", "[freertos]") TEST_ASSERT_TRUE(resumed); } +#if SOC_GPTIMER_SUPPORTED + static volatile bool timer_isr_fired; static gptimer_handle_t gptimer = NULL; @@ -203,3 +205,5 @@ TEST_CASE("Resume task from ISR (other core)", "[freertos]") test_resume_task_from_isr(!UNITY_FREERTOS_CPU); } #endif // CONFIG_FREERTOS_UNICORE + +#endif //SOC_GPTIMER_SUPPORTED diff --git a/components/freertos/test_apps/freertos/kernel/tasks/test_vTaskSuspendAll_xTaskResumeAll.c b/components/freertos/test_apps/freertos/kernel/tasks/test_vTaskSuspendAll_xTaskResumeAll.c index 97acb85257..e6dd88c7aa 100644 --- a/components/freertos/test_apps/freertos/kernel/tasks/test_vTaskSuspendAll_xTaskResumeAll.c +++ b/components/freertos/test_apps/freertos/kernel/tasks/test_vTaskSuspendAll_xTaskResumeAll.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -24,6 +24,8 @@ GP timer is used to trigger an interrupt. Test cases will register an interrupt interrupt callback. The functions below simply the interrupt registration/trigger/deregistration process. */ +#if SOC_GPTIMER_SUPPORTED + static gptimer_handle_t gptimer = NULL; static bool (*registered_intr_callback)(void *) = NULL; @@ -84,6 +86,8 @@ static void deregister_intr_cb(void) TEST_ESP_OK(gptimer_del_timer(gptimer_temp)); } +#endif //SOC_GPTIMER_SUPPORTED + /* --------------------------------------------------------------------------------------------------------------------- Test vTaskSuspendAll() and xTaskResumeAll() basic @@ -265,6 +269,9 @@ Expected: --------------------------------------------------------------------------------------------------------------------- */ #if !CONFIG_FREERTOS_UNICORE + +#if SOC_GPTIMER_SUPPORTED + static volatile int test_unblk_sync; static SemaphoreHandle_t test_unblk_done_sem; @@ -394,6 +401,8 @@ TEST_CASE("Test vTaskSuspendAll allows scheduling on other cores", "[freertos]") vTaskDelay(10); } +#endif //SOC_GPTIMER_SUPPORTED + /* --------------------------------------------------------------------------------------------------------------------- Test vTaskSuspendAll doesn't block unpinned tasks from being scheduled on other cores @@ -539,6 +548,8 @@ Expected: #define TEST_PENDED_NUM_BLOCKED_TASKS 4 +#if SOC_GPTIMER_SUPPORTED + static bool test_pended_isr(void *arg) { TaskHandle_t *blkd_tsks = (TaskHandle_t *)arg; @@ -639,6 +650,8 @@ TEST_CASE("Test xTaskResumeAll resumes pended tasks", "[freertos]") vTaskDelay(10); } +#endif //SOC_GPTIMER_SUPPORTED + /* --------------------------------------------------------------------------------------------------------------------- Test xTaskSuspendAll on both cores pends all tasks and xTaskResumeAll on both cores resumes all tasks diff --git a/tools/unit-test-app/components/test_utils/CMakeLists.txt b/tools/unit-test-app/components/test_utils/CMakeLists.txt index 291b9638a2..5b2ba8900f 100644 --- a/tools/unit-test-app/components/test_utils/CMakeLists.txt +++ b/tools/unit-test-app/components/test_utils/CMakeLists.txt @@ -11,7 +11,7 @@ if(CONFIG_IDF_TARGET_ESP32) # where PCNT can count the pulses generated by RMT, and RMT is clocked from REF_TICK # REF_TICK won't be affected by DFS list(APPEND srcs "ref_clock_impl_rmt_pcnt.c") -else() +elseif(CONFIG_SOC_GPTIMER_SUPPORTED) list(APPEND srcs "ref_clock_impl_timergroup.c") endif()