From 4d5cf17f905b2858b2b8e5c817125fe61697f521 Mon Sep 17 00:00:00 2001 From: Ching-Hsin Lee Date: Thu, 19 Oct 2023 18:34:19 +0800 Subject: [PATCH] Remove unused test --- .../CMock/tasks/FreeRTOSConfig_assert_stack.h | 144 ------- .../CMock/tasks/tasks_assert_stack_utest.c | 372 ------------------ 2 files changed, 516 deletions(-) delete mode 100644 FreeRTOS/Test/CMock/tasks/FreeRTOSConfig_assert_stack.h delete mode 100644 FreeRTOS/Test/CMock/tasks/tasks_assert_stack_utest.c diff --git a/FreeRTOS/Test/CMock/tasks/FreeRTOSConfig_assert_stack.h b/FreeRTOS/Test/CMock/tasks/FreeRTOSConfig_assert_stack.h deleted file mode 100644 index 33ec7373f06..00000000000 --- a/FreeRTOS/Test/CMock/tasks/FreeRTOSConfig_assert_stack.h +++ /dev/null @@ -1,144 +0,0 @@ -/* - * FreeRTOS V202212.00 - * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * https://www.FreeRTOS.org - * https://github.com/FreeRTOS - * - */ - -#ifndef FREERTOS_CONFIG_H -#define FREERTOS_CONFIG_H - -#include "fake_assert.h" - -/* XXX: this file will be processed by unifdef to generate new header files - * that can be mocked according to the configurations desired - * it has a few limitations on the format of this file such as: - * no config that spans more than one line - * no strings in config names - * for more info please check the man file with $ man unifdef - */ - -/*----------------------------------------------------------- -* Application specific definitions. -* -* These definitions should be adjusted for your particular hardware and -* application requirements. -* -* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE -* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. See -* http://www.freertos.org/a00110.html -*----------------------------------------------------------*/ - -#define configUSE_PREEMPTION 1 -#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1 -#define configUSE_TICKLESS_IDLE 1 -#define configUSE_TIME_SLICING 1 -#define configUSE_IDLE_HOOK 1 -#define configUSE_TICK_HOOK 1 -#define configUSE_DAEMON_TASK_STARTUP_HOOK 1 -#define configTICK_RATE_HZ ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */ -#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 70 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the win32 thread. */ -#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 52 * 1024 ) ) -#define configMAX_TASK_NAME_LEN ( 12 ) -#define configUSE_TRACE_FACILITY 0 -#define configUSE_16_BIT_TICKS 0 -#define configIDLE_SHOULD_YIELD 1 -#define configUSE_MUTEXES 1 -#define configCHECK_FOR_STACK_OVERFLOW 1 -#define configUSE_RECURSIVE_MUTEXES 1 -#define configQUEUE_REGISTRY_SIZE 20 -#define configUSE_MALLOC_FAILED_HOOK 1 -#define configUSE_APPLICATION_TASK_TAG 1 -#define configUSE_COUNTING_SEMAPHORES 1 -#define configUSE_ALTERNATIVE_API 0 -#define configUSE_QUEUE_SETS 1 -#define configUSE_TASK_NOTIFICATIONS 1 -#define configTASK_NOTIFICATION_ARRAY_ENTRIES 5 -#define configSUPPORT_STATIC_ALLOCATION 1 -#define configINITIAL_TICK_COUNT ( ( TickType_t ) 0 ) /* For test. */ -#define configSTREAM_BUFFER_TRIGGER_LEVEL_TEST_MARGIN 1 /* As there are a lot of tasks running. */ - -/* Software timer related configuration options. */ -#define configUSE_TIMERS 1 -#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 ) -#define configTIMER_QUEUE_LENGTH 20 -#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 ) - -#define configMAX_PRIORITIES ( 9 ) - -/* Run time stats gathering configuration options. */ -unsigned long ulGetRunTimeCounterValue( void ); /* Prototype of function that returns run time counter. */ -void vConfigureTimerForRunTimeStats( void ); /* Prototype of function that initialises the run time counter. */ -#define configGENERATE_RUN_TIME_STATS 0 -#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() vConfigureTimerForRunTimeStats() -#define portGET_RUN_TIME_COUNTER_VALUE() ulGetRunTimeCounterValue() -#define portUSING_MPU_WRAPPERS 0 -#define configENABLE_MPU 0 -#define portHAS_STACK_OVERFLOW_CHECKING 0 -#define configNUM_THREAD_LOCAL_STORAGE_POINTERS 5 - -/* Co-routine related configuration options. */ -#define configUSE_CO_ROUTINES 0 -#define configMAX_CO_ROUTINE_PRIORITIES ( 2 ) - -#define portSTACK_GROWTH ( 0 ) -#define configRECORD_STACK_HIGH_ADDRESS 1 - -/* This demo makes use of one or more example stats formatting functions. These - * format the raw data provided by the uxTaskGetSystemState() function in to human - * readable ASCII form. See the notes in the implementation of vTaskList() within - * FreeRTOS/Source/tasks.c for limitations. */ -#define configUSE_STATS_FORMATTING_FUNCTIONS 0 -#define configSTACK_ALLOCATION_FROM_SEPARATE_HEAP 0 - -/* Set the following definitions to 1 to include the API function, or zero - * to exclude the API function. In most cases the linker will remove unused - * functions anyway. */ -#define INCLUDE_vTaskPrioritySet 1 -#define INCLUDE_uxTaskPriorityGet 1 -#define INCLUDE_vTaskDelete 1 -#define INCLUDE_vTaskCleanUpResources 0 -#define INCLUDE_vTaskSuspend 1 -#define INCLUDE_vTaskDelayUntil 1 -#define INCLUDE_vTaskDelay 1 -#define INCLUDE_uxTaskGetStackHighWaterMark 0 -#define INCLUDE_xTaskGetSchedulerState 1 -#define INCLUDE_xTimerGetTimerDaemonTaskHandle 1 -#define INCLUDE_xTaskGetIdleTaskHandle 1 -#define INCLUDE_xTaskGetHandle 1 -#define INCLUDE_eTaskGetState 1 -#define INCLUDE_xSemaphoreGetMutexHolder 1 -#define INCLUDE_xTimerPendFunctionCall 1 -#define INCLUDE_xTaskAbortDelay 1 - -/* It is a good idea to define configASSERT() while developing. configASSERT() - * uses the same semantics as the standard C assert() macro. */ -/* *INDENT-OFF* */ -#define configASSERT( x ) do { if( x ) { vFakeAssert( true, __FILE__, __LINE__ ); } else { vFakeAssert( false, __FILE__, __LINE__ ); } } while( 0 ) -/* *INDENT-ON* */ - -#define portREMOVE_STATIC_QUALIFIER 1 - -#define configINCLUDE_MESSAGE_BUFFER_AMP_DEMO 0 -#define configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES 0 - -#endif /* FREERTOS_CONFIG_H */ diff --git a/FreeRTOS/Test/CMock/tasks/tasks_assert_stack_utest.c b/FreeRTOS/Test/CMock/tasks/tasks_assert_stack_utest.c deleted file mode 100644 index 9cd32adfd95..00000000000 --- a/FreeRTOS/Test/CMock/tasks/tasks_assert_stack_utest.c +++ /dev/null @@ -1,372 +0,0 @@ -/* - * FreeRTOS V202212.00 - * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * https://www.FreeRTOS.org - * https://github.com/FreeRTOS - * - */ -/*! @file tasks_assert_utest.c */ - -/* =============================== INCLUDES =============================== */ -/* Tasks includes */ -#include "FreeRTOS.h" -#include "FreeRTOSConfig.h" -#include "fake_port.h" -#include "task.h" - -/* C runtime includes. */ -#include -#include - -/* Test includes. */ -#include "unity.h" -#include "unity_memory.h" -#include "CException.h" -#include "global_vars.h" - -/* Mock includes. */ -#include "mock_fake_assert.h" -#include "mock_portable.h" -#include "mock_list.h" -#include "mock_list_macros.h" - -/* ================================= MACROS =============================== */ - -/** - * @brief CException code for when a configASSERT should be intercepted. - */ -#define configASSERT_E 0xAA101 - -/** - * @brief Expect a configASSERT from the function called. - * Break out of the called function when this occurs. - * @details Use this macro when the call passed in as a parameter is expected - * to cause invalid memory access. - */ -#define EXPECT_ASSERT_BREAK( call ) \ - do \ - { \ - shouldAbortOnAssertion = true; \ - CEXCEPTION_T e = CEXCEPTION_NONE; \ - Try \ - { \ - call; \ - TEST_FAIL(); \ - } \ - Catch( e ) \ - { \ - TEST_ASSERT_EQUAL( configASSERT_E, e ); \ - } \ - } while( 0 ) - -/* ============================ GLOBAL VARIABLES =========================== */ - -/** - * @brief Global counter for the number of assertions in code. - */ -static int assertionFailed = 0; - -/** - * @brief Flag which denotes if test need to abort on assertion. - */ -static BaseType_t shouldAbortOnAssertion; - -/** - * @brief counts entries to critical sections then subtracts from the variable - * when exiting, value should be zero at the end - */ -static uint32_t critical_section_counter = 0; - -static bool port_yield_within_api_called = false; -static port_yield_operation py_operation; -static bool port_disable_interrupts_called = false; -static bool port_enable_interrupts_called = false; -static bool port_yield_called = false; -static bool port_setup_tcb_called = false; -static bool portClear_Interrupt_called = false; -static bool portSet_Interrupt_called = false; -static bool portClear_Interrupt_from_isr_called = false; -static bool portSet_Interrupt_from_isr_called = false; -static bool port_invalid_interrupt_called = false; -static bool vApplicationStackOverflowHook_called = false; -static bool getIdleTaskMemoryValid = false; -static StaticTask_t xIdleTaskTCB; -static StackType_t uxIdleTaskStack[ configMINIMAL_STACK_SIZE ]; -static bool getIdleTaskMemory_called = false; -static bool vTaskDeletePre_called = false; -static bool vApplicationIdleHook_called = false; -static bool vApplicationTickHook_called = false; - -/* ========================== CALLBACK FUNCTIONS ========================== */ -static void vFakeAssertStub( bool x, - char * file, - int line, - int cmock_num_calls ) -{ - if( !x ) - { - assertionFailed++; - - if( shouldAbortOnAssertion == pdTRUE ) - { - Throw( configASSERT_E ); - } - } -} - -/* ========================== STATIC FUNCTIONS ============================ */ -static void validate_and_clear_assertions( void ) -{ - TEST_ASSERT_EQUAL( 1, assertionFailed ); - assertionFailed = 0; -} - - - -/* ======================== HOOK FUNCTIONS =================================*/ -void vApplicationTickHook() -{ - HOOK_DIAG(); - vApplicationTickHook_called = true; -} - -void vApplicationIdleHook( void ) -{ - HOOK_DIAG(); - vApplicationIdleHook_called = true; -} - -void vConfigureTimerForRunTimeStats( void ) -{ - HOOK_DIAG(); -} - -void vApplicationGetIdleTaskMemory( StaticTask_t ** ppxIdleTaskTCBBuffer, - StackType_t ** ppxIdleTaskStackBuffer, - uint32_t * pulIdleTaskStackSize ) -{ - HOOK_DIAG(); - - if( getIdleTaskMemoryValid == true ) - { - /* Pass out a pointer to the StaticTask_t structure in which the Idle task's - * state will be stored. */ - *ppxIdleTaskTCBBuffer = &xIdleTaskTCB; - - /* Pass out the array that will be used as the Idle task's stack. */ - *ppxIdleTaskStackBuffer = uxIdleTaskStack; - - /* Pass out the size of the array pointed to by *ppxIdleTaskStackBuffer. - * Note that, as the array is necessarily of type StackType_t, - * configMINIMAL_STACK_SIZE is specified in words, not bytes. */ - *pulIdleTaskStackSize = configMINIMAL_STACK_SIZE; - } - else - { - *ppxIdleTaskTCBBuffer = NULL; - *ppxIdleTaskStackBuffer = NULL; - *pulIdleTaskStackSize = 0; - } - - getIdleTaskMemory_called = true; -} - -void vPortCurrentTaskDying( void * pvTaskToDelete, - volatile BaseType_t * pxPendYield ) -{ - HOOK_DIAG(); - vTaskDeletePre_called = true; -} - -void vFakePortEnterCriticalSection( void ) -{ - HOOK_DIAG(); - critical_section_counter++; -} - -void vFakePortExitCriticalSection( void ) -{ - HOOK_DIAG(); - critical_section_counter--; -} - -void vFakePortYieldWithinAPI() -{ - HOOK_DIAG(); - port_yield_within_api_called = true; - py_operation(); -} - -void vFakePortYieldFromISR() -{ - HOOK_DIAG(); -} - -uint32_t vFakePortDisableInterrupts() -{ - port_disable_interrupts_called = true; - HOOK_DIAG(); - return 0; -} - -void vFakePortEnableInterrupts() -{ - port_enable_interrupts_called = true; - HOOK_DIAG(); -} - -void vFakePortYield() -{ - HOOK_DIAG(); - port_yield_called = true; - py_operation(); -} - -void portSetupTCB_CB( void * tcb ) -{ - HOOK_DIAG(); - port_setup_tcb_called = true; -} - -void vFakePortClearInterruptMask( UBaseType_t bt ) -{ - HOOK_DIAG(); - portClear_Interrupt_called = true; -} - -UBaseType_t ulFakePortSetInterruptMask( void ) -{ - HOOK_DIAG(); - portSet_Interrupt_called = true; - return 1; -} - -void vFakePortClearInterruptMaskFromISR( UBaseType_t bt ) -{ - HOOK_DIAG(); - portClear_Interrupt_from_isr_called = true; -} - -UBaseType_t ulFakePortSetInterruptMaskFromISR( void ) -{ - HOOK_DIAG(); - portSet_Interrupt_from_isr_called = true; - return 1; -} - -void vFakePortAssertIfInterruptPriorityInvalid( void ) -{ - HOOK_DIAG(); - port_invalid_interrupt_called = true; -} - -void vApplicationStackOverflowHook( TaskHandle_t xTask, - char * stack ) -{ - HOOK_DIAG(); - vApplicationStackOverflowHook_called = true; -} - -unsigned int vFakePortGetCoreID( void ) -{ - HOOK_DIAG(); - return 0; -} - -void vFakePortReleaseTaskLock( void ) -{ - HOOK_DIAG(); -} - -void vFakePortGetTaskLock( void ) -{ - HOOK_DIAG(); -} - -void vFakePortGetISRLock( void ) -{ - HOOK_DIAG(); -} - -void vFakePortReleaseISRLock( void ) -{ - HOOK_DIAG(); -} - -/* =========================== UNITY FIXTURES ============================= */ -/*! called before each test case */ -void setUp( void ) -{ - assertionFailed = 0; - shouldAbortOnAssertion = pdTRUE; - vFakeAssert_StubWithCallback( vFakeAssertStub ); -} - -/*! called after each test case */ -void tearDown( void ) -{ - TEST_ASSERT_EQUAL_MESSAGE( 0, assertionFailed, "Assertion check failed in code." ); - - mock_fake_assert_Verify(); - mock_fake_assert_Destroy(); -} - -/*! called at the beginning of the whole suite */ -void suiteSetUp() -{ -} - -/*! called at the end of the whole suite */ -int suiteTearDown( int numFailures ) -{ - return numFailures; -} - -/* ======================== TEST CASES ===================================== */ - -/*! - * @brief This test ensures that the code asserts when the alignment of the - * stack (growth upwards) is not similar to the basetype alignment - */ -void test_xTaskCreateStatic_assert_stack_alignment( void ) -{ - TaskFunction_t xTFunc = NULL; - StaticTask_t xTaskBuffer[ 200 ]; - StackType_t * xStackBuffer; - - char xStackBuffer_unaligned[ 200 ]; - - xStackBuffer = ( StackType_t * ) &xStackBuffer_unaligned[ 1 ]; - - vListInitialiseItem_Ignore(); - listSET_LIST_ITEM_VALUE_Ignore(); - pxPortInitialiseStack_ExpectAnyArgsAndReturn(); - - EXPECT_ASSERT_BREAK( xTaskCreateStatic( xTFunc, - NULL, - 120, - NULL, - 3, - xStackBuffer, - xTaskBuffer ) ); - - validate_and_clear_assertions(); -}