Skip to content

Commit 35c297b

Browse files
authored
Add queue data group functional tests
* Add queue data group functional tests * Add data group lock tests
2 parents b7738fe + ba439a9 commit 35c297b

6 files changed

Lines changed: 1178 additions & 683 deletions

File tree

FreeRTOS/Test/CMock/smp/granular_lock/FreeRTOSConfig.h

Lines changed: 128 additions & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -25,132 +25,131 @@
2525
*/
2626

2727

28-
#ifndef FREERTOS_CONFIG_H
29-
#define FREERTOS_CONFIG_H
30-
31-
#include "fake_assert.h"
32-
33-
/*-----------------------------------------------------------
34-
* Application specific definitions.
35-
*
36-
* These definitions should be adjusted for your particular hardware and
37-
* application requirements.
38-
*
39-
* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
40-
* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. See
41-
* https://www.FreeRTOS.org/a00110.html
42-
*----------------------------------------------------------*/
43-
44-
/* SMP test specific configuration */
45-
#define configRUN_MULTIPLE_PRIORITIES 1
46-
#define configNUMBER_OF_CORES 16
47-
#define configUSE_CORE_AFFINITY 0
48-
#define configUSE_TIME_SLICING 0
49-
#define configUSE_TASK_PREEMPTION_DISABLE 1
50-
#define configTICK_CORE 0
51-
52-
/* OS Configuration */
53-
#define configUSE_PREEMPTION 1
54-
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 0
55-
#define configUSE_IDLE_HOOK 0
56-
#define configUSE_TICK_HOOK 0
57-
#define configUSE_DAEMON_TASK_STARTUP_HOOK 0
58-
#define configTICK_RATE_HZ ( 1000 )
59-
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 70 )
60-
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 52 * 1024 ) )
61-
#define configMAX_TASK_NAME_LEN ( 12 )
62-
#define configUSE_TRACE_FACILITY 1
63-
#define configUSE_16_BIT_TICKS 0
64-
#define configIDLE_SHOULD_YIELD 1
65-
#define configUSE_MUTEXES 1
66-
#define configCHECK_FOR_STACK_OVERFLOW 0
67-
#define configUSE_RECURSIVE_MUTEXES 1
68-
#define configQUEUE_REGISTRY_SIZE 20
69-
#define configUSE_MALLOC_FAILED_HOOK 1
70-
#define configUSE_APPLICATION_TASK_TAG 1
71-
#define configUSE_COUNTING_SEMAPHORES 1
72-
#define configUSE_ALTERNATIVE_API 0
73-
#define configUSE_QUEUE_SETS 1
74-
#define configUSE_TASK_NOTIFICATIONS 1
75-
#define configTASK_NOTIFICATION_ARRAY_ENTRIES 5
76-
#define configSUPPORT_STATIC_ALLOCATION 0
77-
#define configINITIAL_TICK_COUNT ( ( TickType_t ) 0 )
78-
#define configSTREAM_BUFFER_TRIGGER_LEVEL_TEST_MARGIN 1
79-
#define portREMOVE_STATIC_QUALIFIER 1
80-
#define portCRITICAL_NESTING_IN_TCB 0
81-
#define portSTACK_GROWTH ( 1 )
82-
#define configUSE_PASSIVE_IDLE_HOOK 0
83-
#define configUSE_TICKLESS_IDLE 1
84-
85-
/* Software timer related configuration options. */
86-
#define configUSE_TIMERS 1
87-
#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )
88-
#define configTIMER_QUEUE_LENGTH 20
89-
#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
90-
91-
#define configMAX_PRIORITIES ( 7 )
92-
93-
/* Run time stats gathering configuration options. */
94-
unsigned long ulGetRunTimeCounterValue( void ); /* Prototype of function that returns run time counter. */
95-
void vConfigureTimerForRunTimeStats( void ); /* Prototype of function that initialises the run time counter. */
96-
#define configGENERATE_RUN_TIME_STATS 0
97-
#define portGET_RUN_TIME_COUNTER_VALUE() ulGetRunTimeCounterValue()
98-
#define portUSING_MPU_WRAPPERS 0
99-
#define portHAS_STACK_OVERFLOW_CHECKING 0
100-
#define configENABLE_MPU 0
101-
102-
/* Co-routine related configuration options. */
103-
#define configUSE_CO_ROUTINES 0
104-
#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
105-
106-
/* This demo makes use of one or more example stats formatting functions. These
107-
* format the raw data provided by the uxTaskGetSystemState() function in to human
108-
* readable ASCII form. See the notes in the implementation of vTaskList() within
109-
* FreeRTOS/Source/tasks.c for limitations. */
110-
#define configUSE_STATS_FORMATTING_FUNCTIONS 1
111-
112-
/* Set the following definitions to 1 to include the API function, or zero
113-
* to exclude the API function. In most cases the linker will remove unused
114-
* functions anyway. */
115-
#define INCLUDE_vTaskPrioritySet 1
116-
#define INCLUDE_uxTaskPriorityGet 1
117-
#define INCLUDE_vTaskDelete 1
118-
#define INCLUDE_vTaskCleanUpResources 0
119-
#define INCLUDE_vTaskSuspend 1
120-
#define INCLUDE_vTaskDelayUntil 1
121-
#define INCLUDE_vTaskDelay 1
122-
#define INCLUDE_uxTaskGetStackHighWaterMark 1
123-
#define INCLUDE_xTaskGetSchedulerState 1
124-
#define INCLUDE_xTimerGetTimerDaemonTaskHandle 1
125-
#define INCLUDE_xTaskGetIdleTaskHandle 1
126-
#define INCLUDE_xTaskGetCurrentTaskHandle 1
127-
#define INCLUDE_xTaskGetHandle 1
128-
#define INCLUDE_eTaskGetState 1
129-
#define INCLUDE_xSemaphoreGetMutexHolder 1
130-
#define INCLUDE_xTimerPendFunctionCall 1
131-
#define INCLUDE_xTaskAbortDelay 1
132-
#define INCLUDE_xTaskGetCurrentTaskHandle 1
133-
134-
/* It is a good idea to define configASSERT() while developing. configASSERT()
135-
* uses the same semantics as the standard C assert() macro. */
136-
#define configASSERT( x ) \
137-
do \
138-
{ \
139-
if( x ) \
140-
{ \
141-
vFakeAssert( true, __FILE__, __LINE__ ); \
142-
} \
143-
else \
144-
{ \
145-
vFakeAssert( false, __FILE__, __LINE__ ); \
146-
} \
147-
} while( 0 )
148-
149-
#define configINCLUDE_MESSAGE_BUFFER_AMP_DEMO 0
150-
#if ( configINCLUDE_MESSAGE_BUFFER_AMP_DEMO == 1 )
151-
extern void vGenerateCoreBInterrupt( void * xUpdatedMessageBuffer );
152-
#define sbSEND_COMPLETED( pxStreamBuffer ) vGenerateCoreBInterrupt( pxStreamBuffer )
153-
#endif /* configINCLUDE_MESSAGE_BUFFER_AMP_DEMO */
154-
155-
#endif /* FREERTOS_CONFIG_H */
156-
28+
#ifndef FREERTOS_CONFIG_H
29+
#define FREERTOS_CONFIG_H
30+
31+
#include "fake_assert.h"
32+
33+
/*-----------------------------------------------------------
34+
* Application specific definitions.
35+
*
36+
* These definitions should be adjusted for your particular hardware and
37+
* application requirements.
38+
*
39+
* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
40+
* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. See
41+
* https://www.FreeRTOS.org/a00110.html
42+
*----------------------------------------------------------*/
43+
44+
/* SMP test specific configuration */
45+
#define configRUN_MULTIPLE_PRIORITIES 1
46+
#define configNUMBER_OF_CORES 16
47+
#define configUSE_CORE_AFFINITY 0
48+
#define configUSE_TIME_SLICING 0
49+
#define configUSE_TASK_PREEMPTION_DISABLE 1
50+
#define configTICK_CORE 0
51+
52+
/* OS Configuration */
53+
#define configUSE_PREEMPTION 1
54+
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 0
55+
#define configUSE_IDLE_HOOK 0
56+
#define configUSE_TICK_HOOK 0
57+
#define configUSE_DAEMON_TASK_STARTUP_HOOK 0
58+
#define configTICK_RATE_HZ ( 1000 )
59+
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 70 )
60+
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 52 * 1024 ) )
61+
#define configMAX_TASK_NAME_LEN ( 12 )
62+
#define configUSE_TRACE_FACILITY 1
63+
#define configUSE_16_BIT_TICKS 0
64+
#define configIDLE_SHOULD_YIELD 1
65+
#define configUSE_MUTEXES 1
66+
#define configCHECK_FOR_STACK_OVERFLOW 0
67+
#define configUSE_RECURSIVE_MUTEXES 1
68+
#define configQUEUE_REGISTRY_SIZE 20
69+
#define configUSE_MALLOC_FAILED_HOOK 1
70+
#define configUSE_APPLICATION_TASK_TAG 1
71+
#define configUSE_COUNTING_SEMAPHORES 1
72+
#define configUSE_ALTERNATIVE_API 0
73+
#define configUSE_QUEUE_SETS 1
74+
#define configUSE_TASK_NOTIFICATIONS 1
75+
#define configTASK_NOTIFICATION_ARRAY_ENTRIES 5
76+
#define configSUPPORT_STATIC_ALLOCATION 1
77+
#define configINITIAL_TICK_COUNT ( ( TickType_t ) 0 )
78+
#define configSTREAM_BUFFER_TRIGGER_LEVEL_TEST_MARGIN 1
79+
#define portREMOVE_STATIC_QUALIFIER 1
80+
#define portCRITICAL_NESTING_IN_TCB 0
81+
#define portSTACK_GROWTH ( 1 )
82+
#define configUSE_PASSIVE_IDLE_HOOK 0
83+
#define configUSE_TICKLESS_IDLE 1
84+
85+
/* Software timer related configuration options. */
86+
#define configUSE_TIMERS 1
87+
#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )
88+
#define configTIMER_QUEUE_LENGTH 20
89+
#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
90+
91+
#define configMAX_PRIORITIES ( 7 )
92+
93+
/* Run time stats gathering configuration options. */
94+
unsigned long ulGetRunTimeCounterValue( void ); /* Prototype of function that returns run time counter. */
95+
void vConfigureTimerForRunTimeStats( void ); /* Prototype of function that initialises the run time counter. */
96+
#define configGENERATE_RUN_TIME_STATS 0
97+
#define portGET_RUN_TIME_COUNTER_VALUE() ulGetRunTimeCounterValue()
98+
#define portUSING_MPU_WRAPPERS 0
99+
#define portHAS_STACK_OVERFLOW_CHECKING 0
100+
#define configENABLE_MPU 0
101+
102+
/* Co-routine related configuration options. */
103+
#define configUSE_CO_ROUTINES 0
104+
#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
105+
106+
/* This demo makes use of one or more example stats formatting functions. These
107+
* format the raw data provided by the uxTaskGetSystemState() function in to human
108+
* readable ASCII form. See the notes in the implementation of vTaskList() within
109+
* FreeRTOS/Source/tasks.c for limitations. */
110+
#define configUSE_STATS_FORMATTING_FUNCTIONS 1
111+
112+
/* Set the following definitions to 1 to include the API function, or zero
113+
* to exclude the API function. In most cases the linker will remove unused
114+
* functions anyway. */
115+
#define INCLUDE_vTaskPrioritySet 1
116+
#define INCLUDE_uxTaskPriorityGet 1
117+
#define INCLUDE_vTaskDelete 1
118+
#define INCLUDE_vTaskCleanUpResources 0
119+
#define INCLUDE_vTaskSuspend 1
120+
#define INCLUDE_vTaskDelayUntil 1
121+
#define INCLUDE_vTaskDelay 1
122+
#define INCLUDE_uxTaskGetStackHighWaterMark 1
123+
#define INCLUDE_xTaskGetSchedulerState 1
124+
#define INCLUDE_xTimerGetTimerDaemonTaskHandle 1
125+
#define INCLUDE_xTaskGetIdleTaskHandle 1
126+
#define INCLUDE_xTaskGetCurrentTaskHandle 1
127+
#define INCLUDE_xTaskGetHandle 1
128+
#define INCLUDE_eTaskGetState 1
129+
#define INCLUDE_xSemaphoreGetMutexHolder 1
130+
#define INCLUDE_xTimerPendFunctionCall 1
131+
#define INCLUDE_xTaskAbortDelay 1
132+
#define INCLUDE_xTaskGetCurrentTaskHandle 1
133+
134+
/* It is a good idea to define configASSERT() while developing. configASSERT()
135+
* uses the same semantics as the standard C assert() macro. */
136+
#define configASSERT( x ) \
137+
do \
138+
{ \
139+
if( x ) \
140+
{ \
141+
vFakeAssert( true, __FILE__, __LINE__ ); \
142+
} \
143+
else \
144+
{ \
145+
vFakeAssert( false, __FILE__, __LINE__ ); \
146+
} \
147+
} while( 0 )
148+
149+
#define configINCLUDE_MESSAGE_BUFFER_AMP_DEMO 0
150+
#if ( configINCLUDE_MESSAGE_BUFFER_AMP_DEMO == 1 )
151+
extern void vGenerateCoreBInterrupt( void * xUpdatedMessageBuffer );
152+
#define sbSEND_COMPLETED( pxStreamBuffer ) vGenerateCoreBInterrupt( pxStreamBuffer )
153+
#endif /* configINCLUDE_MESSAGE_BUFFER_AMP_DEMO */
154+
155+
#endif /* FREERTOS_CONFIG_H */

FreeRTOS/Test/CMock/smp/granular_lock/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ PROJECT_DEPS_SRC := list.c
1616
PROJECT_HEADER_DEPS := FreeRTOS.h
1717

1818
# SUITE_UT_SRC: .c files that contain test cases (must end in _utest.c)
19-
SUITE_UT_SRC := granular_lock_timers_utest.c
19+
SUITE_UT_SRC := granular_lock_timers_utest.c granular_lock_queue_utest.c
2020

2121
# SUITE_SUPPORT_SRC: .c files used for testing that do not contain test cases.
2222
# Paths are relative to PROJECT_DIR

0 commit comments

Comments
 (0)