2121** File: es_task_test.c
2222**
2323** Purpose:
24- ** Functional test of basic ES Child Tasks APIs
24+ ** Functional test of ES Child Tasks APIs
2525**
2626** Demonstration of how to register and use the UT assert functions.
2727**
@@ -57,17 +57,52 @@ void TaskExitFunction(void)
5757
5858void TestCreateChild (void )
5959{
60- UtPrintf ("Testing: CFE_ES_CreateChildTask, CFE_ES_GetTaskIDByName, CFE_ES_GetTaskName, CFE_ES_DeleteChildTask " );
60+ UtPrintf ("Testing: CFE_ES_CreateChildTask" );
6161
6262 CFE_ES_TaskId_t TaskId ;
63- const char * TaskName = "CHILD_TASK_1" ;
63+ CFE_ES_TaskId_t TaskId2 ;
64+ const char * TaskName = "CHILD_TASK_1" ;
65+ CFE_ES_StackPointer_t StackPointer = CFE_ES_TASK_STACK_ALLOCATE ;
66+ size_t StackSize = CFE_PLATFORM_ES_PERF_CHILD_STACK_SIZE ;
67+ CFE_ES_TaskPriority_Atom_t Priority = CFE_PLATFORM_ES_PERF_CHILD_PRIORITY ;
68+ uint32 Flags = 0 ;
69+ int ExpectedCount = 5 ;
70+
71+ UtAssert_INT32_EQ (CFE_ES_CreateChildTask (& TaskId , TaskName , TaskFunction , StackPointer , StackSize , Priority , Flags ),
72+ CFE_SUCCESS );
73+ OS_TaskDelay (500 );
74+
75+ UtAssert_True (ExpectedCount >= count - 1 && ExpectedCount <= count + 1 , "countCopy (%d) == count (%d)" ,
76+ (int )ExpectedCount , (int )count );
77+
78+ UtAssert_INT32_EQ (
79+ CFE_ES_CreateChildTask (& TaskId2 , TaskName , TaskFunction , StackPointer , StackSize , Priority , Flags ),
80+ CFE_STATUS_EXTERNAL_RESOURCE_FAIL );
81+ UtAssert_INT32_EQ (CFE_ES_DeleteChildTask (TaskId ), CFE_SUCCESS );
82+
83+ UtAssert_INT32_EQ (CFE_ES_CreateChildTask (NULL , TaskName , TaskFunction , StackPointer , StackSize , Priority , Flags ),
84+ CFE_ES_BAD_ARGUMENT );
85+ UtAssert_INT32_EQ (CFE_ES_CreateChildTask (& TaskId , NULL , TaskFunction , StackPointer , StackSize , Priority , Flags ),
86+ CFE_ES_BAD_ARGUMENT );
87+ UtAssert_INT32_EQ (CFE_ES_CreateChildTask (& TaskId , TaskName , NULL , StackPointer , StackSize , Priority , Flags ),
88+ CFE_ES_BAD_ARGUMENT );
89+ UtAssert_INT32_EQ (CFE_ES_CreateChildTask (& TaskId , TaskName , TaskFunction , StackPointer , 0 , Priority , Flags ),
90+ CFE_STATUS_EXTERNAL_RESOURCE_FAIL );
91+ }
92+
93+ void TestChildTaskName (void )
94+ {
95+ UtPrintf ("Testing: CFE_ES_GetTaskIDByName, CFE_ES_GetTaskName" );
96+
97+ CFE_ES_TaskId_t TaskId ;
98+ const char * TaskName = "CHILD_TASK_1" ;
99+ const char INVALID_TASK_NAME [] = "INVALID_NAME" ;
64100 CFE_ES_TaskId_t TaskIdByName ;
65101 char TaskNameBuf [OS_MAX_API_NAME + 4 ];
66102 CFE_ES_StackPointer_t StackPointer = CFE_ES_TASK_STACK_ALLOCATE ;
67103 size_t StackSize = CFE_PLATFORM_ES_PERF_CHILD_STACK_SIZE ;
68104 CFE_ES_TaskPriority_Atom_t Priority = CFE_PLATFORM_ES_PERF_CHILD_PRIORITY ;
69105 uint32 Flags = 0 ;
70- int countCopy ;
71106
72107 UtAssert_INT32_EQ (CFE_ES_CreateChildTask (& TaskId , TaskName , TaskFunction , StackPointer , StackSize , Priority , Flags ),
73108 CFE_SUCCESS );
@@ -78,16 +113,48 @@ void TestCreateChild(void)
78113 UtAssert_INT32_EQ (CFE_ES_GetTaskName (TaskNameBuf , TaskId , sizeof (TaskNameBuf )), CFE_SUCCESS );
79114 UtAssert_StrCmp (TaskNameBuf , TaskName , "CFE_ES_GetTaskName() = %s" , TaskNameBuf );
80115
116+ UtAssert_INT32_EQ (CFE_ES_GetTaskIDByName (NULL , TaskName ), CFE_ES_BAD_ARGUMENT );
117+ UtAssert_INT32_EQ (CFE_ES_GetTaskIDByName (& TaskIdByName , INVALID_TASK_NAME ), CFE_ES_ERR_NAME_NOT_FOUND );
118+ UtAssert_ResourceID_Undefined (TaskIdByName );
119+
120+ UtAssert_INT32_EQ (CFE_ES_GetTaskName (NULL , TaskId , sizeof (TaskNameBuf )), CFE_ES_BAD_ARGUMENT );
121+ UtAssert_INT32_EQ (CFE_ES_GetTaskName (TaskNameBuf , CFE_ES_TASKID_UNDEFINED , sizeof (TaskNameBuf )),
122+ CFE_ES_ERR_RESOURCEID_NOT_VALID );
123+ UtAssert_INT32_EQ (CFE_ES_GetTaskName (TaskNameBuf , TaskId , sizeof (TaskName ) - 4 ), CFE_ES_ERR_RESOURCEID_NOT_VALID );
124+
125+ UtAssert_INT32_EQ (CFE_ES_DeleteChildTask (TaskId ), CFE_SUCCESS );
126+ }
127+
128+ void TestChildTaskDelete (void )
129+ {
130+ UtPrintf ("Testing: CFE_ES_DeleteChildTask" );
131+
132+ CFE_ES_TaskId_t TaskId ;
133+ const char * TaskName = "CHILD_TASK_1" ;
134+ CFE_ES_StackPointer_t StackPointer = CFE_ES_TASK_STACK_ALLOCATE ;
135+ size_t StackSize = CFE_PLATFORM_ES_PERF_CHILD_STACK_SIZE ;
136+ CFE_ES_TaskPriority_Atom_t Priority = CFE_PLATFORM_ES_PERF_CHILD_PRIORITY ;
137+ uint32 Flags = 0 ;
138+ count = 0 ;
139+ int ExpectedCount = 5 ;
140+
141+ UtAssert_INT32_EQ (CFE_ES_CreateChildTask (& TaskId , TaskName , TaskFunction , StackPointer , StackSize , Priority , Flags ),
142+ CFE_SUCCESS );
81143 OS_TaskDelay (500 );
82144
83- countCopy = count ;
145+ UtAssert_True (ExpectedCount >= count - 1 && ExpectedCount <= count + 1 , "countCopy (%d) == count (%d)" ,
146+ (int )ExpectedCount , (int )count );
147+
148+ ExpectedCount = count ;
84149
85150 UtAssert_INT32_EQ (CFE_ES_DeleteChildTask (TaskId ), CFE_SUCCESS );
86151
87152 OS_TaskDelay (500 );
88153
89- UtAssert_True (countCopy == count || countCopy == count + 1 , "countCopy (%d) == count (%d)" , (int )countCopy ,
90- (int )count );
154+ UtAssert_True (ExpectedCount == count || ExpectedCount == count + 1 , "ExpectedCount (%d) == count (%d)" ,
155+ (int )ExpectedCount , (int )count );
156+
157+ UtAssert_INT32_EQ (CFE_ES_DeleteChildTask (CFE_ES_TASKID_UNDEFINED ), CFE_ES_ERR_RESOURCEID_NOT_VALID );
91158}
92159
93160void TestExitChild (void )
@@ -101,16 +168,19 @@ void TestExitChild(void)
101168 CFE_ES_TaskPriority_Atom_t Priority = CFE_PLATFORM_ES_PERF_CHILD_PRIORITY ;
102169 uint32 Flags = 0 ;
103170 count = 0 ;
171+ int ExpectedCount = 1 ;
104172
105173 UtAssert_INT32_EQ (
106174 CFE_ES_CreateChildTask (& TaskId , TaskName , TaskExitFunction , StackPointer , StackSize , Priority , Flags ),
107175 CFE_SUCCESS );
108176 OS_TaskDelay (500 );
109- UtAssert_INT32_EQ (count , 1 );
177+ UtAssert_INT32_EQ (ExpectedCount , 1 );
110178}
111179
112180void ESTaskTestSetup (void )
113181{
114182 UtTest_Add (TestCreateChild , NULL , NULL , "Test Create Child" );
183+ UtTest_Add (TestChildTaskName , NULL , NULL , "Test Child Task Name" );
184+ UtTest_Add (TestChildTaskDelete , NULL , NULL , "Test Child Tasks Delete" );
115185 UtTest_Add (TestExitChild , NULL , NULL , "Test Exit Child" );
116186}
0 commit comments