Skip to content

Commit a9db63b

Browse files
committed
Fix #465, added UT tests for various ES API functions
Test CFE_ES_ReloadApp bad AppID, core app, file doesn't exist Test CFE_ES_GetAppID: NULL AppID pointer Test CFE_ES_GetAppIDByName: NULL AppID pointer Test CFE_ES_GetAppIDByName: NULL name pointer Test CFE_ES_DeleteChildTask: Task inactive/invalid case Test CFE_ES_RegisterCDS: NULL handle and NULL name
1 parent a16c78e commit a9db63b

File tree

1 file changed

+64
-2
lines changed

1 file changed

+64
-2
lines changed

modules/es/ut-coverage/es_UT.c

Lines changed: 64 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3738,12 +3738,40 @@ void TestAPI(void)
37383738
UT_Report(__FILE__, __LINE__, CFE_ES_RestartApp(AppId) == CFE_ES_ERR_RESOURCEID_NOT_VALID, "CFE_ES_RestartApp",
37393739
"Application ID too large");
37403740

3741-
/* Test reloading an app that doesn't exist */
3741+
/* Test CFE_ES_ReloadApp with bad AppID argument */
3742+
ES_ResetUnitTest();
3743+
UT_Report(__FILE__, __LINE__,
3744+
CFE_ES_ReloadApp(CFE_ES_APPID_UNDEFINED, "filename") == CFE_ES_ERR_RESOURCEID_NOT_VALID,
3745+
"CFE_ES_ReloadApp", "Bad application ID");
3746+
3747+
/* Test reloading a core app */
3748+
ES_ResetUnitTest();
3749+
ES_UT_SetupSingleAppId(CFE_ES_AppType_CORE, CFE_ES_AppState_RUNNING, NULL, &UtAppRecPtr, NULL);
3750+
AppId = CFE_ES_AppRecordGetID(UtAppRecPtr);
3751+
UT_Report(__FILE__, __LINE__, CFE_ES_ReloadApp(AppId, "filename") == CFE_ES_ERR_RESOURCEID_NOT_VALID,
3752+
"CFE_ES_ReloadApp", "Cannot Reload a CORE App");
3753+
3754+
/* Test reloading an app that is currently not running */
37423755
ES_ResetUnitTest();
37433756
ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_STOPPED, NULL, &UtAppRecPtr, NULL);
37443757
AppId = CFE_ES_AppRecordGetID(UtAppRecPtr);
37453758
UT_Report(__FILE__, __LINE__, CFE_ES_ReloadApp(AppId, "filename") == CFE_ES_ERR_RESOURCEID_NOT_VALID,
3746-
"CFE_ES_ReloadApp", "Bad application ID");
3759+
"CFE_ES_ReloadApp", "App not running");
3760+
3761+
/* Test success initiating an app reload */
3762+
ES_ResetUnitTest();
3763+
ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, NULL, &UtAppRecPtr, NULL);
3764+
AppId = CFE_ES_AppRecordGetID(UtAppRecPtr);
3765+
UT_Report(__FILE__, __LINE__, CFE_ES_ReloadApp(AppId, "filename") == CFE_SUCCESS, "CFE_ES_ReloadApp",
3766+
"Reload success");
3767+
3768+
/* Test Reload app: file doesn't exist*/
3769+
ES_ResetUnitTest();
3770+
UT_SetDefaultReturnValue(UT_KEY(OS_stat), OS_ERROR);
3771+
ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, NULL, &UtAppRecPtr, NULL);
3772+
AppId = CFE_ES_AppRecordGetID(UtAppRecPtr);
3773+
UT_Report(__FILE__, __LINE__, CFE_ES_ReloadApp(AppId, "missingfile") == CFE_ES_FILE_IO_ERR, "CFE_ES_ReloadApp",
3774+
"File doesn't exist");
37473775

37483776
/* Test deleting an app that doesn't exist */
37493777
ES_ResetUnitTest();
@@ -3855,6 +3883,22 @@ void TestAPI(void)
38553883
UT_Report(__FILE__, __LINE__, CFE_ES_GetTaskID(&TaskId) == CFE_SUCCESS, "CFE_ES_GetTaskID",
38563884
"Get task ID by context successful");
38573885

3886+
/* Test CFE_ES_GetAppID error with null pointer parameter */
3887+
ES_ResetUnitTest();
3888+
UT_Report(__FILE__, __LINE__, CFE_ES_GetAppID(NULL) == CFE_ES_BAD_ARGUMENT, "CFE_ES_GetAppID",
3889+
"NULL AppID pointer");
3890+
3891+
/* Test CFE_ES_GetAppIDByName error with null AppID pointer and valid name */
3892+
ES_ResetUnitTest();
3893+
UT_Report(__FILE__, __LINE__, CFE_ES_GetAppIDByName(NULL, "UT") == CFE_ES_BAD_ARGUMENT, "CFE_ES_GetAppIDByName",
3894+
"NULL AppID pointer");
3895+
3896+
/* Test CFE_ES_GetAppIDByName error with valid AppID and NULL name */
3897+
ES_ResetUnitTest();
3898+
ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, "UT", NULL, NULL);
3899+
UT_Report(__FILE__, __LINE__, CFE_ES_GetAppIDByName(&AppId, NULL) == CFE_ES_BAD_ARGUMENT, "CFE_ES_GetAppIDByName",
3900+
"NULL name pointer");
3901+
38583902
/* Test getting the app name with a bad app ID */
38593903
ES_ResetUnitTest();
38603904
AppId = CFE_ES_APPID_C(ES_UT_MakeAppIdForIndex(99999));
@@ -3987,6 +4031,14 @@ void TestAPI(void)
39874031
CFE_ES_TaskEntryPoint();
39884032
UtAssert_STUB_COUNT(ES_UT_TaskFunction, 1);
39894033

4034+
/* Test deleting a child task when task is not active/valid */
4035+
ES_ResetUnitTest();
4036+
ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, "UT", NULL, &UtTaskRecPtr);
4037+
TaskId = CFE_ES_TaskRecordGetID(UtTaskRecPtr);
4038+
UtTaskRecPtr->TaskId = TaskId + 1; /* UtTaskRecPtr->TaskId shouldn't match the Child Task ID */
4039+
UT_Report(__FILE__, __LINE__, CFE_ES_DeleteChildTask(TaskId) == CFE_ES_ERR_RESOURCEID_NOT_VALID,
4040+
"CFE_ES_DeleteChildTask", "Task ID is not valid/active");
4041+
39904042
/* Test deleting a child task using a main task's ID */
39914043
ES_ResetUnitTest();
39924044
ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, "UT", NULL, &UtTaskRecPtr);
@@ -4411,6 +4463,16 @@ void TestCDS()
44114463
UT_Report(__FILE__, __LINE__, CFE_ES_CDS_CacheFlush(&CFE_ES_Global.CDSVars.Cache) == CFE_ES_CDS_ACCESS_ERROR,
44124464
"CFE_ES_CDS_CacheFlush", "Access Error");
44134465

4466+
/* Test CDS registering with null Handle pointer */
4467+
ES_ResetUnitTest();
4468+
UT_Report(__FILE__, __LINE__, CFE_ES_RegisterCDS(NULL, 4, "Name3") == CFE_ES_BAD_ARGUMENT, "CFE_ES_RegisterCDS",
4469+
"NULL handle pointer");
4470+
4471+
/* Test CDS registering with null name */
4472+
ES_ResetUnitTest();
4473+
UT_Report(__FILE__, __LINE__, CFE_ES_RegisterCDS(&CDSHandle, 4, NULL) == CFE_ES_BAD_ARGUMENT, "CFE_ES_RegisterCDS",
4474+
"NULL name argument");
4475+
44144476
/* Test CDS registering with a write CDS failure */
44154477
ES_ResetUnitTest();
44164478
ES_UT_SetupSingleAppId(CFE_ES_AppType_CORE, CFE_ES_AppState_RUNNING, "UT", NULL, NULL);

0 commit comments

Comments
 (0)