Skip to content

Commit c42d8d9

Browse files
authored
Merge pull request #1621 from zanzaben/fix1477_add_additional_test_cases
Fix #1477, add additional test cases for Child Tasks
2 parents f29151f + 12d3889 commit c42d8d9

File tree

1 file changed

+78
-8
lines changed

1 file changed

+78
-8
lines changed

modules/cfe_testcase/src/es_task_test.c

+78-8
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
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

5858
void 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

93160
void 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

112180
void 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

Comments
 (0)