21
21
** File: es_task_test.c
22
22
**
23
23
** Purpose:
24
- ** Functional test of basic ES Child Tasks APIs
24
+ ** Functional test of ES Child Tasks APIs
25
25
**
26
26
** Demonstration of how to register and use the UT assert functions.
27
27
**
@@ -57,17 +57,52 @@ void TaskExitFunction(void)
57
57
58
58
void TestCreateChild (void )
59
59
{
60
- UtPrintf ("Testing: CFE_ES_CreateChildTask, CFE_ES_GetTaskIDByName, CFE_ES_GetTaskName, CFE_ES_DeleteChildTask " );
60
+ UtPrintf ("Testing: CFE_ES_CreateChildTask" );
61
61
62
62
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" ;
64
100
CFE_ES_TaskId_t TaskIdByName ;
65
101
char TaskNameBuf [OS_MAX_API_NAME + 4 ];
66
102
CFE_ES_StackPointer_t StackPointer = CFE_ES_TASK_STACK_ALLOCATE ;
67
103
size_t StackSize = CFE_PLATFORM_ES_PERF_CHILD_STACK_SIZE ;
68
104
CFE_ES_TaskPriority_Atom_t Priority = CFE_PLATFORM_ES_PERF_CHILD_PRIORITY ;
69
105
uint32 Flags = 0 ;
70
- int countCopy ;
71
106
72
107
UtAssert_INT32_EQ (CFE_ES_CreateChildTask (& TaskId , TaskName , TaskFunction , StackPointer , StackSize , Priority , Flags ),
73
108
CFE_SUCCESS );
@@ -78,16 +113,48 @@ void TestCreateChild(void)
78
113
UtAssert_INT32_EQ (CFE_ES_GetTaskName (TaskNameBuf , TaskId , sizeof (TaskNameBuf )), CFE_SUCCESS );
79
114
UtAssert_StrCmp (TaskNameBuf , TaskName , "CFE_ES_GetTaskName() = %s" , TaskNameBuf );
80
115
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 );
81
143
OS_TaskDelay (500 );
82
144
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 ;
84
149
85
150
UtAssert_INT32_EQ (CFE_ES_DeleteChildTask (TaskId ), CFE_SUCCESS );
86
151
87
152
OS_TaskDelay (500 );
88
153
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 );
91
158
}
92
159
93
160
void TestExitChild (void )
@@ -101,16 +168,19 @@ void TestExitChild(void)
101
168
CFE_ES_TaskPriority_Atom_t Priority = CFE_PLATFORM_ES_PERF_CHILD_PRIORITY ;
102
169
uint32 Flags = 0 ;
103
170
count = 0 ;
171
+ int ExpectedCount = 1 ;
104
172
105
173
UtAssert_INT32_EQ (
106
174
CFE_ES_CreateChildTask (& TaskId , TaskName , TaskExitFunction , StackPointer , StackSize , Priority , Flags ),
107
175
CFE_SUCCESS );
108
176
OS_TaskDelay (500 );
109
- UtAssert_INT32_EQ (count , 1 );
177
+ UtAssert_INT32_EQ (ExpectedCount , 1 );
110
178
}
111
179
112
180
void ESTaskTestSetup (void )
113
181
{
114
182
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" );
115
185
UtTest_Add (TestExitChild , NULL , NULL , "Test Exit Child" );
116
186
}
0 commit comments