From 4f0d0c1b8755abf68655c0788a558014f413f2cb Mon Sep 17 00:00:00 2001 From: "Jose F. Martinez Pedraza" Date: Mon, 21 Jun 2021 12:04:00 -0400 Subject: [PATCH] Fix #467, Add coverage for CFE_ES_CreateObjects and CFE_ES_Main Completed 100% coverage on cfe_es_start.c --- modules/es/ut-coverage/es_UT.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/modules/es/ut-coverage/es_UT.c b/modules/es/ut-coverage/es_UT.c index d2c757f02..44f19022f 100644 --- a/modules/es/ut-coverage/es_UT.c +++ b/modules/es/ut-coverage/es_UT.c @@ -696,7 +696,15 @@ void TestStartupErrorPaths(void) UtAssert_STUB_COUNT(CFE_PSP_Panic, 1); UtAssert_UINT32_EQ(PanicStatus, CFE_PSP_PANIC_STARTUP_SEM); - /* Perform ES main startup with a file open failure */ + /* Perform ES main startup with a ES Perf Data mutex creation failure */ + ES_ResetUnitTest(); + UT_SetDeferredRetcode(UT_KEY(OS_MutSemCreate), 2, OS_ERROR); + UT_SetDataBuffer(UT_KEY(CFE_PSP_Panic), &PanicStatus, sizeof(PanicStatus), false); + CFE_ES_Main(CFE_PSP_RST_TYPE_POWERON, 1, 1, "ut_startup"); + UtAssert_UINT32_EQ(PanicStatus, CFE_PSP_PANIC_STARTUP_SEM); + UtAssert_UINT32_EQ(UT_GetStubCount(UT_KEY(CFE_PSP_Panic)), 1); + + /* Perform ES main startup with a ES Shared Data mutex creation failure */ ES_ResetUnitTest(); UT_SetDummyFuncRtn(OS_SUCCESS); UT_SetDefaultReturnValue(UT_KEY(OS_OpenCreate), OS_ERROR); @@ -926,6 +934,13 @@ void TestStartupErrorPaths(void) CFE_UtAssert_PRINTF(UT_OSP_MESSAGES[UT_OSP_NO_FREE_CORE_APP_SLOTS]); CFE_UtAssert_PRINTF(UT_OSP_MESSAGES[UT_OSP_FUNCTION_POINTER]); + /* Test reading the object table with a NULL object type */ + ES_ResetUnitTest(); + UT_SetDefaultReturnValue(UT_KEY(CFE_ResourceId_FindNext), OS_ERROR); + CFE_ES_ObjectTable[CFE_PLATFORM_ES_OBJECT_TABLE_SIZE - 1].ObjectType = -1; /* Set last entry to unknown type */ + CFE_ES_CreateObjects(); + CFE_UtAssert_PrintfIsInHistory((UT_OSP_MESSAGES[UT_OSP_NO_FREE_CORE_APP_SLOTS])); + /* Test response to an invalid startup type */ ES_ResetUnitTest(); CFE_ES_Global.DebugVars.DebugFlag = 1;