From fcf9b7b12388d3b18234109ff5080c578a6ee788 Mon Sep 17 00:00:00 2001
From: "Martinez Pedraza, Jose F. (GSFC-5820)"
 <jose.f.martinez-pedraza@nasa.gov>
Date: Tue, 29 Jun 2021 11:25:13 -0400
Subject: [PATCH] Fix #468, Adding coverage for cfe_es_task.c

Test the following cases:
- CFE_ES_TaskMain() with a CFE_ES_TaskInit() error
- Query tasks command with valid lib ID
- Error when sending Build Info event
- CFE_ES_GenerateVersionEvents() error when sending mission event
- Loop coverage for CFE_ES_FindConfigKeyValue()
---
 modules/es/ut-coverage/es_UT.c | 31 ++++++++++++++++++++++++++++++-
 1 file changed, 30 insertions(+), 1 deletion(-)

diff --git a/modules/es/ut-coverage/es_UT.c b/modules/es/ut-coverage/es_UT.c
index d2c757f02..b1429ca02 100644
--- a/modules/es/ut-coverage/es_UT.c
+++ b/modules/es/ut-coverage/es_UT.c
@@ -2104,9 +2104,15 @@ void TestTask(void)
 
     /* Set up buffer for first cycle, pipe failure is on 2nd */
     UT_SetDataBuffer(UT_KEY(CFE_MSG_GetMsgId), &MsgId, sizeof(MsgId), false);
-    CFE_ES_TaskMain();
+    CFE_UtAssert_VOIDCALL(CFE_ES_TaskMain());
     CFE_UtAssert_PRINTF(UT_OSP_MESSAGES[UT_OSP_COMMAND_PIPE]);
 
+    /* Test task main process with a CFE_ES_TaskInit() error */
+    ES_ResetUnitTest();
+    UT_SetDeferredRetcode(UT_KEY(CFE_EVS_Register), 1, -1);
+    CFE_UtAssert_VOIDCALL(CFE_ES_TaskMain());
+    CFE_UtAssert_PRINTF("Application Init Failed");
+
     /* Test task main process loop with bad checksum information */
     ES_ResetUnitTest();
     UT_SetDeferredRetcode(UT_KEY(CFE_PSP_GetCFETextSegmentInfo), 1, -1);
@@ -2477,6 +2483,14 @@ void TestTask(void)
     UT_CallTaskPipe(CFE_ES_TaskPipe, &CmdBuf.Msg, sizeof(CmdBuf.QueryAllCmd), UT_TPID_CFE_ES_CMD_QUERY_ALL_CC);
     CFE_UtAssert_EVENTSENT(CFE_ES_ALL_APPS_EID);
 
+    /* Test Query tasks command with valid lib ID */
+    ES_ResetUnitTest();
+    memset(&CmdBuf, 0, sizeof(CmdBuf));
+    ES_UT_SetupSingleAppId(CFE_ES_AppType_CORE, CFE_ES_AppState_RUNNING, "CFE_ES", NULL, NULL);
+    CFE_ES_Global.LibTable[0].LibId = CFE_ES_LIBID_C(ES_UT_MakeLibIdForIndex(1));
+    UT_CallTaskPipe(CFE_ES_TaskPipe, &CmdBuf.Msg, sizeof(CmdBuf.QueryAllCmd), UT_TPID_CFE_ES_CMD_QUERY_ALL_CC);
+    CFE_UtAssert_EVENTSENT(CFE_ES_ALL_APPS_EID);
+
     /* Test write of all app data to file with a null file name */
     ES_ResetUnitTest();
     memset(&CmdBuf, 0, sizeof(CmdBuf));
@@ -2997,6 +3011,21 @@ void TestTask(void)
     UT_CallTaskPipe(CFE_ES_TaskPipe, &CmdBuf.Msg, sizeof(CmdBuf.DumpCDSRegistryCmd),
                     UT_TPID_CFE_ES_CMD_DUMP_CDS_REGISTRY_CC);
     CFE_UtAssert_EVENTSENT(CFE_ES_CDS_REG_DUMP_INF_EID);
+
+    /* Test error when sending Build Info event */
+    ES_ResetUnitTest();
+    UT_SetDeferredRetcode(UT_KEY(CFE_EVS_SendEvent), 1, CFE_EVS_INVALID_PARAMETER);
+    UT_CallTaskPipe(CFE_ES_TaskPipe, &CmdBuf.Msg, sizeof(CmdBuf.NoArgsCmd), UT_TPID_CFE_ES_CMD_NOOP_CC);
+    CFE_UtAssert_PRINTF("Error sending build info event");
+
+    /* Test CFE_ES_GenerateVersionEvents error when sending mission event */
+    ES_ResetUnitTest();
+    ES_UT_SetupSingleAppId(CFE_ES_AppType_CORE, CFE_ES_AppState_RUNNING, NULL, NULL, NULL);
+    CFE_ES_Global.ResetDataPtr->ResetVars.ResetType = 1;
+    UT_SetDeferredRetcode(UT_KEY(CFE_EVS_SendEvent), 3, CFE_EVS_INVALID_PARAMETER);
+    CFE_UtAssert_VOIDCALL(CFE_ES_TaskInit());
+    CFE_UtAssert_PRINTF("Error sending mission version event");
+
 } /* end TestTask */
 
 void TestPerf(void)