From 50c139fbeeee208052f6338c53e8ecefdb7c2fe1 Mon Sep 17 00:00:00 2001 From: ArielSAdamsNASA Date: Fri, 27 Aug 2021 09:38:01 -0500 Subject: [PATCH 1/7] Fix #1216, Update Directory Diagrams in App Developer Guide --- docs/cFE Application Developers Guide.md | 133 +++++++++++++++--- ...E_Application_Developers_Guide_image10.png | Bin 68995 -> 0 bytes ...E_Application_Developers_Guide_image11.png | Bin 60220 -> 0 bytes ...FE_Application_Developers_Guide_image5.png | Bin 97141 -> 0 bytes ...FE_Application_Developers_Guide_image6.png | Bin 54610 -> 0 bytes ...FE_Application_Developers_Guide_image7.png | Bin 76535 -> 0 bytes ...FE_Application_Developers_Guide_image8.png | Bin 93190 -> 0 bytes ...FE_Application_Developers_Guide_image9.png | Bin 42191 -> 0 bytes 8 files changed, 117 insertions(+), 16 deletions(-) delete mode 100644 docs/media/cFE_Application_Developers_Guide_image10.png delete mode 100644 docs/media/cFE_Application_Developers_Guide_image11.png delete mode 100644 docs/media/cFE_Application_Developers_Guide_image5.png delete mode 100644 docs/media/cFE_Application_Developers_Guide_image6.png delete mode 100644 docs/media/cFE_Application_Developers_Guide_image7.png delete mode 100644 docs/media/cFE_Application_Developers_Guide_image8.png delete mode 100644 docs/media/cFE_Application_Developers_Guide_image9.png diff --git a/docs/cFE Application Developers Guide.md b/docs/cFE Application Developers Guide.md index 324a2189e..f29d73f0e 100644 --- a/docs/cFE Application Developers Guide.md +++ b/docs/cFE Application Developers Guide.md @@ -303,21 +303,130 @@ a variation on this standard. ## 2.1 Directory Tree -The following diagrams show the standard development and build directory +The following shows the standard development and build directory tree or mission tree as it is often referred to. The purpose of each directory is described as a note under each folder. - -![](.//media/cFE_Application_Developers_Guide_image4.png) - -![](.//media/cFE_Application_Developers_Guide_image5.png) - -![](.//media/cFE_Application_Developers_Guide_image6.png) - +``` +-- missionxyz + |-- cfe + | |-- Contains a copy of the cFE component + |-- osal + | |-- Contains a copy of the OSAL component + |-- psp + | |-- Contains the Platform Suport Package (PSP) library + | |-- Can customize PSP implementation for each CPU and OS that the project needs + |-- build + | |-- The flight software is all configured and built under this directory + | |-- All mission and platform configuration files are placed here + |-- apps + | |-- Contains application source code. + | |-- Application source code may be shared amoung multiple build CPUs + |-- libs + | |-- Contains Core Flight System (cFS) Sample Library (sample_lib) + |-- tools + | |-- Contains Core Flight System (cFS) tools +``` +Module descriptions are provided in the table below. +``` +-- missionxyz/cfe + |-- cmake + | |-- sample_defs + | | |-- Example target definitions folder (used for building the open source cFS bundle) + | |-- target + | | |-- Templates and generic helper software used/included by the build toolchain + |-- docs + |-- modules + | |-- cfe_assert + | |-- cfe_testcase + | |-- cfe_testrunner + | |-- core_api + | |-- core_private + | |-- es + | |-- evs + | |-- fs + | |-- msg + | |-- resourceid + | |-- sb + | |-- sbr + | |-- tbl + | |-- time +``` +``` +-- missionxyz/build + |-- CMakeFiles + | |-- Cmake fore cfe core build and all apps + |-- cpu1 + | |-- Contains start up script "cfe_es_startup.scr" + | |-- Where build.o and executable files, etc. are placed + |-- cpuN + |-- docs + |-- exe + |-- inc + | |-- Where the cpu1 platform configuration include files go + |-- src + |-- tools +``` +``` +-- missionxyz/build/cpu1 + |-- default_cpu1 + | |-- CMakeFiles + | | | Cmake fore cfe core build and all apps + | |-- apps + | | |-- Where application makefiles go + | | |-- One directory per application + | |-- core_api + | |-- core_private + | |-- cpu1 + | | |-- Contains start up script "cfe_es_startup.scr" + | | |-- Where build.o and executable files, etc. are placed + | |-- es + | |-- evs + | |-- fs + | |-- inc + | | |-- Where the cpu1 platform configuration include files go + | |-- msg + | |-- osal + | |-- psp + | |-- resourceid + | |-- sb + | |-- sbr + | |-- tbl + | |-- time +``` +``` +-- missionxyz/apps + |-- ci_lab + |-- sample_app + |-- sch_lab + |-- to_lab +``` +``` +-- missionxyz/tools + |-- cFS-GroundSystem + |-- elf2cfetbl + |-- tblCRCTool +``` +``` +-- missionxyz/cf/modules/es + |-- eds + |-- fsw + | | Software tree + | |-- inc + | |-- src + | | |-- Application source code and private header files + | | |-- The build system is flexible enough to have multiple subdirectories under/src when building code + | | |-- For appls with ~ 10 files, keep it simple with just a "src" directory + |-- ut-coverage + | | Test tree +``` Each cFE core component is itself a modular entity, all of which work together to form the complete cFE core executive. These modules are all contained under the `modules` subdirectory: | **Directory** | **Content** | |:------------------------|:------------------------------------------------------------------------------------------------------------------ | +| `modules/cfe_assert/` | A CFE-compatible library wrapping the basic UT assert library. This is the same library that all other unit tests use, but configured to be dynamically loaded into the CFE environment, and using CFE syslog for its output. This must be the first library loaded for any functional test. | +| `modules/cfe_testcase/` | A CFE-compatible library implementing test cases for CFE core apps. This must be loaded after cfe_assert. | +| `modules/cfe_testrunner/` | A CFE application that actually executes the tests. This is a very simple app that waits for CFE startup to complete, then executes all registered test cases. It also must be loaded after cfe_assert. | | `modules/core_api/` | Contains the public interface definition of the complete CFE core - public API/headers only, no implementation | | `modules/core_private/` | Contains the inter-module interface definition of the CFE core - internal API/headers only, no implementation | | `modules/es/` | Implementation of the Executive Services (ES) core module - provides app and task management | @@ -343,15 +452,7 @@ Each module directory is in turn divided into subdirectories as follows: | _module_`/ut-coverage/` | Coverage tests to provide line/branch testing (correlates with internal implementation in `fsw/src`) | | _module_`/eds/` | Command & Telemetry interface description as a CCSDS book 876.0 Electronic Data Sheet | -![](.//media/cFE_Application_Developers_Guide_image7.png) - -![](.//media/cFE_Application_Developers_Guide_image8.png) - -![](.//media/cFE_Application_Developers_Guide_image9.png) - -![](.//media/cFE_Application_Developers_Guide_image10.png) -![](.//media/cFE_Application_Developers_Guide_image11.png) ## 2.2 Header Files diff --git a/docs/media/cFE_Application_Developers_Guide_image10.png b/docs/media/cFE_Application_Developers_Guide_image10.png deleted file mode 100644 index 479dc653712bde42a23ae8659f278a22acafcd92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68995 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%0DtBkq@1yw5 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�QX?3>Y=^!o?3Es0CbO@P~2?s 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 E2ch|Ng#Z8m diff --git a/docs/media/cFE_Application_Developers_Guide_image5.png b/docs/media/cFE_Application_Developers_Guide_image5.png deleted file mode 100644 index 96a45ac122a59689408a07a0086dc397678ebcb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97141 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 &a`t_2!)+(9cbIG6;;0_|VVs7o`XPTh?XRF` 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 z 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�Vs13VI%gYgG0jJ`22iphsf^&E+ijYI4^16*W_TV)&oCK(&$St7d#!-;Doj(5 z8-Y5@NRX35_TQoEo%=%IF=3gRopzD!VwUjwbZszea^!quQgP(5-^$6_S4&5eL74YP zDWn4CvUX{yP~UBP1HJY{{d z^?c%)>M8pOK~>7-Z^{{jrn*{NZm~&wdr6k$-Si#H?vRxGb3|FQVioHfVcvK*8w#Ws zNZrdNkNTmu@bb4w?V9@MaUEqA@sg|i%ak`w(>ov#QhuxtclmQCI&-$w{-L{c*i#%k zImtUge~Mswik^Sn`i~3_2H&JNQ73ZB$xE?Oi;T&?jZ~6nR$U?qyM2nC2z8DjHRV%L z#G}}#Lcxgr^)n)QO8zq(;=SV|TdWoy)&U-rlvud&#sU+|6JKimS5@{tE-06t7Q*?V z{PBPp92{>;cgUl2|GCwfDKP=745}<_mWcTLr4N9Tn6udQu?4q&Rnh$nNG3I(EbqFS zyG;Y?l>F!Q<>m26>3g!t&Zem^yu_z?y%$t>$#WDX0#!hgo!S;PQRmwN!0;wNxTq~ zbT=hrjw!#eJ|W+1d8Urt8?u2QiS9IdO_6XY&0)c2F{2)DgQ~@U&p~MWjE>r(vcse< zcT&%f2<3YCL5gjdbn0XOAJ|wWulFDDPtUFY%fG#fZS=e+;x;!ov2||6z60G0z<`Ic zCI9P`;n@25XME3i{{5GKpFjWq_uq5)|IIr5_`*ndEtC;E`SaOZp|4<%p-G6!zAgUe Hz4!kBh7#s$ diff --git a/docs/media/cFE_Application_Developers_Guide_image7.png b/docs/media/cFE_Application_Developers_Guide_image7.png deleted file mode 100644 index ffeec30ad1c36d17b8bfbd8b26a62502f4ddfa13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76535 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 $mkSuUc_^ib9?<$Vm2=i1-(u+0`cC%R*%nGgug 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 XJ+KA&!BYHn{zpwoOR?ga^_%|z7Zo>O diff --git a/docs/media/cFE_Application_Developers_Guide_image9.png b/docs/media/cFE_Application_Developers_Guide_image9.png deleted file mode 100644 index 96832ebf43d731c4c2f53c7b0803888b7e007804..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42191 zcmeFZcT`i|*De|hq5>kKf>cEXlrAbFC88oq6%i4TE+Ac{hZ3=XQdO!_g7hLFU1~rS zq(%t6MJb7)1xP3%?XJ!HmES%08|R;U&OPItarYSSYslVvWvw;Kn)7+)T5oRaYjN!t z*bjrjxNhCNeg_8IlMRFI64<*3e8WAbn+5*a;dw{vDy+CihzS1J?Wm!r0fUvsaL{eo zz~B2G-!%1v!H%AW{@Zcu&Z%V>EbHN|>l%0cEEgF2`elrRjt7$156ic(g*_ARw(dM# z!Iii2UXpLuo~WJTXII5{N|o%~w^wR{)5mOio;3ZwDy04mCvopp%PS^gN$1nW&z-v3 z5o#?|GeB=Jx5E#|5U@g1ud7?;K2cX z1rg2LbE}1Ij5go_eemOA+Zt{oq1 z8#uYq==%^^f@W?}7Cn$E6P_3~qMa!1e(h|6dD#${dF#7fXV_p(!#^Ge4O#eF)GmMH z!0zH!eLG2;L>VMn*2=n-ci*F`@aMK1pgrEA{>PU?N%t*sA`$UT}pt0$z|d)&Jo#g*|04HVjIF7G27Rz*ui+0>yb& zdf&{fLsYXQG0~xAZLu0Rj~&A?Z(Li~d$;$tu^MyJ7i-e^)QahPP9%te!ZvKEzlGcN zPi?k7DGr}>;zT2QFgMU}Bs4B{X!2V#_G-J0`#G-jB?W6fo{O-e zCwonJSG(=Mqgj&QDTf|k4u-+5SZ)6lhsK$tAk^k}RL*p?iXw;pj}#-NNx#e{pjx++ z)4~7kPDrwmPvF-tFE_DLxHdLImFiD$=mI$a#R3w$Job-esVz3rWQnbU@H9*2YGRJc z($|xz-h-yw%2$guf~M)0(SCfVo)W_wK~9e87QqG67EMb)cb~aKx(Q47ppjTxlo0NE ziGaYFcUlfm^R>PI@hXPbKsDZyk`YwaR*(StFNc6^RsOA8)yP>Su=8Kr-33yCMe#!I zf$QH)oO3aT`8TFdrh5E+BQQ#Q3ApvSqN3Ne0_Z?oRF2Iy|76$wBbGxtBGfQX|)2oF`DJv#u!EOZSnC36e;s*Eg zpjm}Iy30B5yYhoCS0c?%3=+)!>)X!e{L(uuky|MGj09T_(DsmRcO!q4C#iO8u8`~q z6d+^UJz2Xh)ezDs@g;$$k-!N{AA-aRYn`i|FV?})CO1~MAB9X5X8k!WaJAiwkm`%a zfVtEJ;sTF?`I+AC3HbCV1(G9l{kIbXzWT3x-=*ze12+XE{ @9Qb>>0vM8mlhYYm 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 K=d#Wzp$P!cd}Is& From 0fbcb7622ffaeb7d1c3787c5eb038d69c5f9b0cf Mon Sep 17 00:00:00 2001 From: Jacob Hageman Date: Mon, 30 Aug 2021 22:15:43 +0000 Subject: [PATCH 2/7] Fix #1905, Improve SB coverage --- modules/sb/ut-coverage/sb_UT.c | 127 +++++++++++++++++++++++++++++++-- modules/sb/ut-coverage/sb_UT.h | 16 +++++ 2 files changed, 139 insertions(+), 4 deletions(-) diff --git a/modules/sb/ut-coverage/sb_UT.c b/modules/sb/ut-coverage/sb_UT.c index da88d7151..c42c5865d 100644 --- a/modules/sb/ut-coverage/sb_UT.c +++ b/modules/sb/ut-coverage/sb_UT.c @@ -695,9 +695,13 @@ void Test_SB_Cmds_RoutingInfoDataGetter(void) CFE_SB_MsgId_t MsgId4 = SB_UT_TLM_MID5; CFE_SB_MsgId_t MsgId5 = SB_UT_TLM_MID6; uint16 PipeDepth = 10; + uint16 i; void * LocalBuffer; size_t LocalBufSize; CFE_SB_BackgroundFileStateInfo_t State; + CFE_SB_PipeD_t * PipeDscPtr; + CFE_SB_DestinationD_t * DestPtr; + CFE_SB_DestinationD_t * DestPtrSave; /* Create some map info */ CFE_UtAssert_SETUP(CFE_SB_CreatePipe(&PipeId1, PipeDepth, "TestPipe1")); @@ -715,7 +719,16 @@ void Test_SB_Cmds_RoutingInfoDataGetter(void) LocalBuffer = NULL; LocalBufSize = 0; - UtAssert_BOOL_FALSE(CFE_SB_WriteRouteInfoDataGetter(&State, 0, &LocalBuffer, &LocalBufSize)); + /* Loop through records including one unused */ + for (i = 0; i < 5; i++) + { + UtAssert_BOOL_FALSE(CFE_SB_WriteRouteInfoDataGetter(&State, i, &LocalBuffer, &LocalBufSize)); + UtAssert_NOT_NULL(LocalBuffer); + UtAssert_NONZERO(LocalBufSize); + } + + /* Last record should return TRUE but valid entries */ + UtAssert_BOOL_TRUE(CFE_SB_WriteRouteInfoDataGetter(&State, i, &LocalBuffer, &LocalBufSize)); UtAssert_NOT_NULL(LocalBuffer); UtAssert_NONZERO(LocalBufSize); @@ -723,6 +736,22 @@ void Test_SB_Cmds_RoutingInfoDataGetter(void) CFE_SB_WriteRouteInfoDataGetter(&State, CFE_PLATFORM_SB_MAX_MSG_IDS, &LocalBuffer, &LocalBufSize)); UtAssert_ZERO(LocalBufSize); + /* Hit max destination limit by corrupting head pointer, point to self (bug avoidance code) */ + DestPtr = CFE_SBR_GetDestListHeadPtr(CFE_SBR_ValueToRouteId(1)); + DestPtrSave = DestPtr->Next; + DestPtr->Next = DestPtr; + UtAssert_VOIDCALL(CFE_SB_CollectRouteInfo(CFE_SBR_ValueToRouteId(1), &State)); + DestPtr->Next = DestPtrSave; + + /* Hit invalid PipeId case by corrupting PipeId (bug avoidance code) */ + PipeDscPtr = CFE_SB_LocatePipeDescByID(PipeId1); + PipeDscPtr->PipeId = CFE_SB_INVALID_PIPE; + UtAssert_VOIDCALL(CFE_SB_CollectRouteInfo(CFE_SBR_ValueToRouteId(0), &State)); + PipeDscPtr->PipeId = PipeId1; + + /* Hit invalid MsgId for route by passing in invalid route (bug avoidance code) */ + UtAssert_VOIDCALL(CFE_SB_CollectRouteInfo(CFE_SBR_ValueToRouteId(CFE_PLATFORM_SB_MAX_MSG_IDS), &State)); + CFE_UtAssert_TEARDOWN(CFE_SB_DeletePipe(PipeId1)); CFE_UtAssert_TEARDOWN(CFE_SB_DeletePipe(PipeId2)); CFE_UtAssert_TEARDOWN(CFE_SB_DeletePipe(PipeId3)); @@ -1510,7 +1539,8 @@ void Test_SB_Cmds_SendPrevSubs(void) NumEvts += 1; } - CFE_UtAssert_SETUP(CFE_SB_SubscribeLocal(MsgId, PipeId2, MsgLim)); + /* Additional unique local route to hit while loop destptr == NULL branch */ + CFE_UtAssert_SETUP(CFE_SB_SubscribeLocal(CFE_SB_ValueToMsgId(i), PipeId2, MsgLim)); /* For 3 internal TransmitMsg calls */ MsgIdCmd = CFE_SB_ValueToMsgId(CFE_SB_ALLSUBS_TLM_MID); @@ -1531,7 +1561,7 @@ void Test_SB_Cmds_SendPrevSubs(void) CFE_SB_ProcessCmdPipePkt(&SendPrevSubs.SBBuf); - NumEvts += 8; /* +2 for the subscribe, +6 for the SEND_PREV_SUBS_CC */ + NumEvts += 7; /* +1 for the local subscribe, +6 for the SEND_PREV_SUBS_CC */ /* Event count is only exact if there were no collisions */ if (UT_EventIsInHistory(CFE_SB_HASHCOLLISION_EID)) @@ -1871,6 +1901,8 @@ void Test_CreatePipe_MaxPipes(void) CFE_SB_Global.PipeTbl[2].PipeId = CFE_SB_INVALID_PIPE; UtAssert_BOOL_TRUE(CFE_SB_CheckPipeDescSlotUsed(UT_SB_MakePipeIdForIndex(1))); UtAssert_BOOL_FALSE(CFE_SB_CheckPipeDescSlotUsed(UT_SB_MakePipeIdForIndex(2))); + UT_SetDeferredRetcode(UT_KEY(CFE_ResourceId_ToIndex), 1, -1); + UtAssert_BOOL_TRUE(CFE_SB_CheckPipeDescSlotUsed(UT_SB_MakePipeIdForIndex(1))); } /* end Test_CreatePipe_MaxPipes */ @@ -2505,6 +2537,9 @@ void Test_Subscribe_MaxMsgIdCount(void) CFE_UtAssert_SETUP(CFE_SB_CreatePipe(&PipeId1, PipeDepth, "TestPipe1")); CFE_UtAssert_SETUP(CFE_SB_CreatePipe(&PipeId2, PipeDepth, "TestPipe2")); + /* For code coverage set PeakMsgIdsInUse so it won't always increment */ + CFE_SB_Global.StatTlmMsg.Payload.PeakMsgIdsInUse = 1; + for (i = 0; i < CFE_PLATFORM_SB_MAX_MSG_IDS + 1; i++) { if (i < CFE_PLATFORM_SB_MAX_MSG_IDS) @@ -3317,9 +3352,18 @@ void Test_TransmitMsg_GetPoolBufErr(void) UtAssert_INT32_EQ(CFE_SB_TransmitMsg(&TlmPkt.Hdr.Msg, true), CFE_SB_BUF_ALOC_ERR); CFE_UtAssert_EVENTCOUNT(3); - CFE_UtAssert_EVENTSENT(CFE_SB_GET_BUF_ERR_EID); + /* Repeat buf descriptor allocation failed with event denied */ + UT_SetDataBuffer(UT_KEY(CFE_MSG_GetMsgId), &MsgId, sizeof(MsgId), false); + UT_SetDataBuffer(UT_KEY(CFE_MSG_GetSize), &Size, sizeof(Size), false); + UT_SetDeferredRetcode(UT_KEY(CFE_ES_GetPoolBuf), 1, CFE_ES_ERR_MEM_BLOCK_SIZE); + UT_SetDeferredRetcode(UT_KEY(CFE_ES_TaskID_ToIndex), 1, -1); + UtAssert_INT32_EQ(CFE_SB_TransmitMsg(&TlmPkt.Hdr.Msg, true), CFE_SB_BUF_ALOC_ERR); + + /* Confirm no additional events sent */ + CFE_UtAssert_EVENTCOUNT(3); + CFE_UtAssert_TEARDOWN(CFE_SB_DeletePipe(PipeId)); } /* end Test_TransmitMsg_GetPoolBufErr */ @@ -3449,6 +3493,19 @@ void Test_TransmitBuffer_IncrementSeqCnt(void) CFE_UtAssert_EVENTSENT(CFE_SB_SUBSCRIPTION_RCVD_EID); + /* Test again with message validation failure */ + SendPtr = CFE_SB_AllocateMessageBuffer(sizeof(SB_UT_Test_Tlm_t)); + if (SendPtr == NULL) + { + UtAssert_Failed("Unexpected NULL pointer returned from ZeroCopyGetPtr"); + } + + MsgId = CFE_SB_INVALID_MSG_ID; + UT_SetDataBuffer(UT_KEY(CFE_MSG_GetMsgId), &MsgId, sizeof(MsgId), false); + UtAssert_INT32_EQ(CFE_SB_TransmitBuffer(SendPtr, true), CFE_SB_BAD_ARGUMENT); + CFE_UtAssert_EVENTSENT(CFE_SB_SEND_INV_MSGID_EID); + CFE_UtAssert_SUCCESS(CFE_SB_ReleaseMessageBuffer(SendPtr)); + /* Test an unsuccessful zero copy send */ UtAssert_INT32_EQ(CFE_SB_TransmitBuffer(NULL, true), CFE_SB_BAD_ARGUMENT); @@ -3710,6 +3767,26 @@ static void SB_UT_PipeIdModifyHandler(void *UserObj, UT_EntryKey_t FuncKey, cons PipeDscPtr->PipeId = CFE_SB_INVALID_PIPE; } +/* Special handler to hit OS_QueueGet error casses */ +static void SB_UT_QueueGetHandler(void *UserObj, UT_EntryKey_t FuncKey, const UT_StubContext_t *Context) +{ + size_t **data = (size_t **)UT_Hook_GetArgValueByName(Context, "data", void *); + size_t * size_copied = UT_Hook_GetArgValueByName(Context, "size_copied", size_t *); + int32 status = OS_SUCCESS; + + *data = UserObj; + + if (*data == NULL) + { + *size_copied = sizeof(CFE_SB_BufferD_t *); + } + else + { + *size_copied = *((size_t *)UserObj); + } + UT_Stub_SetReturnValue(FuncKey, status); +} + /* ** Test receiving a message from the software bus with an invalid pipe ID */ @@ -3825,6 +3902,7 @@ void Test_ReceiveBuffer_PipeReadError(void) CFE_SB_Buffer_t *SBBufPtr; CFE_SB_PipeId_t PipeId; uint32 PipeDepth = 10; + size_t Data = 1; CFE_UtAssert_SETUP(CFE_SB_CreatePipe(&PipeId, PipeDepth, "RcvTestPipe")); UT_SetDeferredRetcode(UT_KEY(OS_QueueGet), 1, OS_ERROR); @@ -3834,6 +3912,13 @@ void Test_ReceiveBuffer_PipeReadError(void) CFE_UtAssert_EVENTSENT(CFE_SB_Q_RD_ERR_EID); + /* Set handler to exercise error conditions for OS_QueueGet */ + UT_SetHandlerFunction(UT_KEY(OS_QueueGet), SB_UT_QueueGetHandler, &Data); + UtAssert_INT32_EQ(CFE_SB_ReceiveBuffer(&SBBufPtr, PipeId, CFE_SB_PEND_FOREVER), CFE_SB_PIPE_RD_ERR); + UT_SetHandlerFunction(UT_KEY(OS_QueueGet), SB_UT_QueueGetHandler, NULL); + UtAssert_INT32_EQ(CFE_SB_ReceiveBuffer(&SBBufPtr, PipeId, CFE_SB_PEND_FOREVER), CFE_SB_PIPE_RD_ERR); + UT_SetHandlerFunction(UT_KEY(OS_QueueGet), NULL, NULL); + CFE_UtAssert_TEARDOWN(CFE_SB_DeletePipe(PipeId)); } /* end Test_ReceiveBuffer_PipeReadError */ @@ -4198,6 +4283,7 @@ void Test_CFE_SB_ZeroCopyReleaseAppId(void) */ void Test_SB_SpecialCases(void) { + SB_UT_ADD_SUBTEST(Test_UseCount_Rollover_Prevention); SB_UT_ADD_SUBTEST(Test_OS_MutSem_ErrLogic); SB_UT_ADD_SUBTEST(Test_ReqToSendEvent_ErrLogic); SB_UT_ADD_SUBTEST(Test_PutDestBlk_ErrLogic); @@ -4212,6 +4298,20 @@ void Test_SB_SpecialCases(void) SB_UT_ADD_SUBTEST(Test_MessageString); } /* end Test_SB_SpecialCases */ +/* + * Test the use count rollover prevetion + */ +void Test_UseCount_Rollover_Prevention(void) +{ + CFE_SB_BufferD_t bd; + uint16 usecount_expected = 0x7FFF; + + /* Note this is just for coverage, limit can not be reached in nomal ops (would be a bug) */ + bd.UseCount = usecount_expected; + UtAssert_VOIDCALL(CFE_SB_IncrBufUseCnt(&bd)); + UtAssert_UINT32_EQ(bd.UseCount, usecount_expected); +} + /* ** Test pipe creation with semaphore take and give failures */ @@ -4568,6 +4668,8 @@ void Test_SB_TransmitMsgPaths_IgnoreOpt(void) int32 PipeDepth = 2; CFE_MSG_Type_t Type = CFE_MSG_Type_Tlm; CFE_MSG_Size_t Size = sizeof(TlmPkt); + CFE_SB_PipeD_t * PipeDscPtr; + CFE_ES_AppId_t AppId; /* Setup Test skipping sending to a pipe when the pipe option is set to ignore */ MsgId = SB_UT_TLM_MID; @@ -4581,6 +4683,23 @@ void Test_SB_TransmitMsgPaths_IgnoreOpt(void) /* Test skipping this pipe and the send should pass */ CFE_UtAssert_SUCCESS(CFE_SB_TransmitMsg(&TlmPkt.Hdr.Msg, true)); + UtAssert_STUB_COUNT(OS_QueuePut, 0); + + /* Set up and send again without matching ApId and it should transmit */ + UT_SetDataBuffer(UT_KEY(CFE_MSG_GetMsgId), &MsgId, sizeof(MsgId), false); + UT_SetDataBuffer(UT_KEY(CFE_MSG_GetSize), &Size, sizeof(Size), false); + UT_SetDataBuffer(UT_KEY(CFE_MSG_GetType), &Type, sizeof(Type), false); + PipeDscPtr = CFE_SB_LocatePipeDescByID(PipeId); + AppId = PipeDscPtr->AppId; + PipeDscPtr->AppId = CFE_ES_APPID_UNDEFINED; + + /* Also hit case where not the peak depth */ + PipeDscPtr->PeakQueueDepth += 2; + CFE_UtAssert_SUCCESS(CFE_SB_TransmitMsg(&TlmPkt.Hdr.Msg, true)); + UtAssert_STUB_COUNT(OS_QueuePut, 1); + + /* Set AppId back so it can be deleted */ + PipeDscPtr->AppId = AppId; CFE_UtAssert_TEARDOWN(CFE_SB_SetPipeOpts(PipeId, 0)); CFE_UtAssert_TEARDOWN(CFE_SB_DeletePipe(PipeId)); diff --git a/modules/sb/ut-coverage/sb_UT.h b/modules/sb/ut-coverage/sb_UT.h index 083402e6b..0f1d422be 100644 --- a/modules/sb/ut-coverage/sb_UT.h +++ b/modules/sb/ut-coverage/sb_UT.h @@ -2349,6 +2349,22 @@ void Test_CFE_SB_ZeroCopyReleaseAppId(void); ******************************************************************************/ void Test_SB_SpecialCases(void); +/*****************************************************************************/ +/** +** \brief Test Use Count rollover protection +** +** \par Description +** This function tests a buffer descriptor with the max possible +** use count. +** +** \par Assumptions, External Events, and Notes: +** None +** +** \returns +** This function does not return a value. +******************************************************************************/ +void Test_UseCount_Rollover_Prevention(void); + /*****************************************************************************/ /** ** \brief Test pipe creation with semaphore take and give failures From b40a340f5a130ac33d10d597340b76aa754aeb74 Mon Sep 17 00:00:00 2001 From: Jacob Hageman Date: Tue, 31 Aug 2021 21:20:17 +0000 Subject: [PATCH 3/7] Fix #1878 #1696, Improve ES code coverage --- .../ut-stubs/inc/ut_osprintf_stubs.h | 1 + .../ut-stubs/src/ut_osprintf_stubs.c | 1 + modules/es/ut-coverage/es_UT.c | 691 ++++++++++++++++-- 3 files changed, 635 insertions(+), 58 deletions(-) diff --git a/modules/core_private/ut-stubs/inc/ut_osprintf_stubs.h b/modules/core_private/ut-stubs/inc/ut_osprintf_stubs.h index 6641ad843..d9c40946e 100644 --- a/modules/core_private/ut-stubs/inc/ut_osprintf_stubs.h +++ b/modules/core_private/ut-stubs/inc/ut_osprintf_stubs.h @@ -105,5 +105,6 @@ #define UT_OSP_PUTPOOL_BAD_HANDLE 77 #define UT_OSP_FORMAT_VOLATILE 78 #define UT_OSP_RELOAD_NO_FILE 79 +#define UT_OSP_EXTERNAL_APP_EXIT 80 #endif /* UT_OSPRINTF_STUBS_H */ diff --git a/modules/core_private/ut-stubs/src/ut_osprintf_stubs.c b/modules/core_private/ut-stubs/src/ut_osprintf_stubs.c index ddb5bfcd6..d7a08252f 100644 --- a/modules/core_private/ut-stubs/src/ut_osprintf_stubs.c +++ b/modules/core_private/ut-stubs/src/ut_osprintf_stubs.c @@ -110,4 +110,5 @@ const char *UT_OSP_MESSAGES[] = { [UT_OSP_PUTPOOL_BAD_HANDLE] = "%s: Err:Invalid Memory Handle (0x%08lX).\n", [UT_OSP_FORMAT_VOLATILE] = "%s: Formatting Volatile(RAM) Volume.\n", [UT_OSP_RELOAD_NO_FILE] = "%s: Cannot Reload Application %s, File %s does not exist.\n", + [UT_OSP_EXTERNAL_APP_EXIT] = "%s: Application %s called CFE_ES_ExitApp\n", }; diff --git a/modules/es/ut-coverage/es_UT.c b/modules/es/ut-coverage/es_UT.c index cf315f6d5..ad7e33e01 100644 --- a/modules/es/ut-coverage/es_UT.c +++ b/modules/es/ut-coverage/es_UT.c @@ -39,6 +39,7 @@ ** Includes */ #include "es_UT.h" +#include "target_config.h" #define ES_UT_CDS_BLOCK_SIZE 16 @@ -207,6 +208,25 @@ void ES_UT_TaskFunction(void) UT_DEFAULT_IMPL(ES_UT_TaskFunction); } +/* Local function to test CFE_ES_SysLog_vsnprintf */ +void ES_UT_SysLog_snprintf(char *Buffer, size_t BufferSize, const char *SpecStringPtr, ...) +{ + va_list ap; + + va_start(ap, SpecStringPtr); + CFE_ES_SysLog_vsnprintf(Buffer, BufferSize, SpecStringPtr, ap); + va_end(ap); +} + +void ES_UT_FillBuffer(void *UserObj, UT_EntryKey_t FuncKey, const UT_StubContext_t *Context) +{ + char * PrintBuffer = UT_Hook_GetArgValueByName(Context, "PrintBuffer", char *); + uint32 Size = *((uint32 *)UserObj); + + memset(PrintBuffer, ' ', Size - 1); + PrintBuffer[Size - 1] = 0; +} + /* * Helper function to assemble basic bits of info into the "CFE_ES_ModuleLoadParams_t" struct */ @@ -401,6 +421,18 @@ int32 ES_UT_CDSPoolCommit(CFE_ES_GenPoolRecord_t *PoolRecPtr, size_t Offset, con return CFE_PSP_WriteToCDS(BdPtr, Offset, sizeof(*BdPtr)); } +/* Commit failure routine for pool coverage testing */ +int32 ES_UT_PoolCommitFail(CFE_ES_GenPoolRecord_t *PoolRecPtr, size_t Offset, const CFE_ES_GenPoolBD_t *BdPtr) +{ + return CFE_ES_CDS_ACCESS_ERROR; +} + +/* Retrieve failure routine for pool coverage testing */ +int32 ES_UT_PoolRetrieveFail(CFE_ES_GenPoolRecord_t *PoolRecPtr, size_t Offset, CFE_ES_GenPoolBD_t **BdPtr) +{ + return CFE_ES_CDS_ACCESS_ERROR; +} + void ES_UT_SetupMemPoolId(CFE_ES_MemPoolRecord_t **OutPoolRecPtr) { CFE_ResourceId_t UtPoolID; @@ -876,6 +908,22 @@ void TestStartupErrorPaths(void) CFE_ES_InitializeFileSystems(CFE_PSP_RST_TYPE_PROCESSOR); CFE_UtAssert_PRINTF(UT_OSP_MESSAGES[UT_OSP_DETERMINE_BLOCKS]); + /* File system init with free space (no reformat) */ + ES_ResetUnitTest(); + StatBuf.blocks_free = StatBuf.total_blocks; + UT_SetDataBuffer(UT_KEY(OS_FileSysStatVolume), &StatBuf, sizeof(StatBuf), false); + CFE_ES_InitializeFileSystems(CFE_PSP_RST_TYPE_PROCESSOR); + UtAssert_STUB_COUNT(OS_unmount, 0); + StatBuf.blocks_free = CFE_PLATFORM_ES_RAM_DISK_NUM_SECTORS / 100; + + /* File system init with no blocks */ + ES_ResetUnitTest(); + StatBuf.total_blocks = 0; + UT_SetDataBuffer(UT_KEY(OS_FileSysStatVolume), &StatBuf, sizeof(StatBuf), false); + CFE_ES_InitializeFileSystems(CFE_PSP_RST_TYPE_PROCESSOR); + UtAssert_STUB_COUNT(CFE_PSP_Panic, 1); + StatBuf.total_blocks = CFE_PLATFORM_ES_RAM_DISK_NUM_SECTORS; + /* Test reading the object table where a record used error occurs */ ES_ResetUnitTest(); TaskRecPtr = CFE_ES_Global.TaskTable; @@ -967,7 +1015,7 @@ void TestStartupErrorPaths(void) /* Test application sync delay where the operation times out */ ES_ResetUnitTest(); /* This prep is necessary so GetAppId works */ - ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppType_CORE, NULL, &AppRecPtr, NULL); + ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_EARLY_INIT, NULL, &AppRecPtr, NULL); CFE_ES_Global.SystemState = CFE_ES_SystemState_CORE_READY; UtAssert_INT32_EQ( CFE_ES_WaitForSystemState(CFE_ES_SystemState_OPERATIONAL, CFE_PLATFORM_ES_STARTUP_SCRIPT_TIMEOUT_MSEC), @@ -978,7 +1026,7 @@ void TestStartupErrorPaths(void) */ ES_ResetUnitTest(); /* This prep is necessary so GetAppId works */ - ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppType_CORE, NULL, &AppRecPtr, NULL); + ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_EARLY_INIT, NULL, &AppRecPtr, NULL); CFE_ES_Global.SystemState = CFE_ES_SystemState_CORE_READY; UtAssert_INT32_EQ( CFE_ES_WaitForSystemState(CFE_ES_SystemState_SHUTDOWN, CFE_PLATFORM_ES_STARTUP_SCRIPT_TIMEOUT_MSEC), @@ -990,7 +1038,7 @@ void TestStartupErrorPaths(void) */ ES_ResetUnitTest(); /* This prep is necessary so GetAppId works */ - ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppType_CORE, NULL, &AppRecPtr, NULL); + ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_EARLY_INIT, NULL, &AppRecPtr, NULL); CFE_ES_Global.SystemState = CFE_ES_SystemState_CORE_READY; UtAssert_INT32_EQ( @@ -1001,9 +1049,78 @@ void TestStartupErrorPaths(void) /* Test success */ ES_ResetUnitTest(); /* This prep is necessary so GetAppId works */ - ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppType_CORE, NULL, &AppRecPtr, NULL); + ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_EARLY_INIT, NULL, &AppRecPtr, NULL); CFE_ES_Global.SystemState = CFE_ES_SystemState_CORE_READY; CFE_UtAssert_SUCCESS(CFE_ES_WaitForSystemState(CFE_ES_SystemState_CORE_READY, 0)); + + /* Core app wait for operational, already running */ + ES_ResetUnitTest(); + ES_UT_SetupSingleAppId(CFE_ES_AppType_CORE, CFE_ES_AppState_EARLY_INIT, NULL, &AppRecPtr, NULL); + CFE_ES_Global.SystemState = CFE_ES_SystemState_EARLY_INIT; + CFE_UtAssert_SUCCESS(CFE_ES_WaitForSystemState(CFE_ES_SystemState_EARLY_INIT, 0)); +} + +static void ES_UT_UnusedAppTask(void *UserObj, UT_EntryKey_t FuncKey, const UT_StubContext_t *Context) +{ + CFE_ES_TaskId_t TaskId = *((CFE_ES_TaskId_t *)UserObj); + CFE_ES_TaskRecord_t *UtTaskRecPtr; + CFE_ES_AppRecord_t * UtAppRecPtr; + + UtTaskRecPtr = CFE_ES_LocateTaskRecordByID(TaskId); + UtAppRecPtr = CFE_ES_LocateAppRecordByID(UtTaskRecPtr->AppId); + + /* Set the records back to there "used" values */ + UtTaskRecPtr->TaskId = CFE_ES_TASKID_UNDEFINED; + UtAppRecPtr->AppId = CFE_ES_APPID_UNDEFINED; +} + +static void ES_UT_UsedAppTask(void *UserObj, UT_EntryKey_t FuncKey, const UT_StubContext_t *Context) +{ + CFE_ES_TaskId_t TaskId = *((CFE_ES_TaskId_t *)UserObj); + CFE_ES_TaskRecord_t *UtTaskRecPtr; + CFE_ES_AppRecord_t * UtAppRecPtr; + + UtTaskRecPtr = CFE_ES_LocateTaskRecordByID(TaskId); + UtAppRecPtr = CFE_ES_LocateAppRecordByID(UtTaskRecPtr->AppId); + + /* Set the records back to there "used" values */ + UtTaskRecPtr->TaskId = TaskId; + UtAppRecPtr->AppId = UtTaskRecPtr->AppId; +} + +static void ES_UT_SetPerfIdle(void *UserObj, UT_EntryKey_t FuncKey, const UT_StubContext_t *Context) +{ + CFE_ES_Global.ResetDataPtr->Perf.MetaData.State = CFE_ES_PERF_IDLE; +} + +static void ES_UT_ForEachObjectIncrease(void *UserObj, UT_EntryKey_t FuncKey, const UT_StubContext_t *Context) +{ + + OS_ArgCallback_t callback_ptr = UT_Hook_GetArgValueByName(Context, "callback_ptr", OS_ArgCallback_t); + void * callback_arg = UT_Hook_GetArgValueByName(Context, "callback_arg", void *); + int * count = (int *)UserObj; + int i; + osal_id_t id; + + /* Increasing number of objects per call */ + for (i = 0; i < *count; i++) + { + OS_OpenCreate(&id, NULL, 0, 0); + (*callback_ptr)(id, callback_arg); + } + (*count)++; +} + +static void ES_UT_ForEachObjectFail(void *UserObj, UT_EntryKey_t FuncKey, const UT_StubContext_t *Context) +{ + + OS_ArgCallback_t callback_ptr = UT_Hook_GetArgValueByName(Context, "callback_ptr", OS_ArgCallback_t); + void * callback_arg = UT_Hook_GetArgValueByName(Context, "callback_arg", void *); + osal_id_t id; + + OS_OpenCreate(&id, NULL, 0, 0); + UT_SetDeferredRetcode(UT_KEY(OS_close), 1, -1); + (*callback_ptr)(id, callback_arg); } void TestApps(void) @@ -1014,9 +1131,11 @@ void TestApps(void) CFE_ES_TaskId_t TaskId; CFE_ES_TaskRecord_t * UtTaskRecPtr; CFE_ES_AppRecord_t * UtAppRecPtr; + CFE_ES_AppRecord_t * UtAppRecPtr1; CFE_ES_MemPoolRecord_t *UtPoolRecPtr; char NameBuffer[OS_MAX_API_NAME + 5]; CFE_ES_AppStartParams_t StartParams; + int ObjCount; UtPrintf("Begin Test Apps"); @@ -1079,6 +1198,12 @@ void TestApps(void) CFE_ES_StartApplications(CFE_PSP_RST_TYPE_PROCESSOR, "ut_startup"); CFE_UtAssert_PRINTF(UT_OSP_MESSAGES[UT_OSP_CANNOT_OPEN_ES_APP_STARTUP]); + /* Test with failing parse of filenames */ + ES_ResetUnitTest(); + UT_SetDefaultReturnValue(UT_KEY(CFE_FS_ParseInputFileName), -1); + CFE_ES_StartApplications(CFE_PSP_RST_TYPE_PROCESSOR, "ut_startup"); + UtAssert_STUB_COUNT(OS_OpenCreate, 0); + /* Test successfully starting an application */ ES_ResetUnitTest(); UT_SetReadBuffer(StartupScript, NumBytes); @@ -1110,9 +1235,10 @@ void TestApps(void) /* Verify requirement to report error */ CFE_UtAssert_PRINTF(UT_OSP_MESSAGES[UT_OSP_APP_CREATE]); - /* Test application creation with NULL parameters */ + /* Test application creation with NULL pointers */ ES_ResetUnitTest(); UtAssert_INT32_EQ(CFE_ES_AppCreate(&AppId, "AppName", NULL), CFE_ES_BAD_ARGUMENT); + UtAssert_INT32_EQ(CFE_ES_AppCreate(&AppId, NULL, &StartParams), CFE_ES_BAD_ARGUMENT); /* Test application creation with name too long */ memset(NameBuffer, 'x', sizeof(NameBuffer) - 1); @@ -1149,6 +1275,7 @@ void TestApps(void) CFE_ES_Global.AppTable[2].AppId = CFE_ES_APPID_UNDEFINED; UtAssert_BOOL_TRUE(CFE_ES_CheckAppIdSlotUsed(ES_UT_MakeAppIdForIndex(1))); UtAssert_BOOL_FALSE(CFE_ES_CheckAppIdSlotUsed(ES_UT_MakeAppIdForIndex(2))); + UtAssert_BOOL_TRUE(CFE_ES_CheckAppIdSlotUsed(CFE_RESOURCEID_UNDEFINED)); /* Test application loading and creation where the entry point symbol * cannot be found @@ -1187,7 +1314,7 @@ void TestApps(void) UtAppRecPtr->ControlReq.AppControlRequest = CFE_ES_RunStatus_APP_RUN; UtAppRecPtr->ControlReq.AppTimerMsec = 0; memset(&CFE_ES_Global.BackgroundAppScanState, 0, sizeof(CFE_ES_Global.BackgroundAppScanState)); - CFE_ES_RunAppTableScan(0, &CFE_ES_Global.BackgroundAppScanState); + UtAssert_BOOL_TRUE(CFE_ES_RunAppTableScan(0, &CFE_ES_Global.BackgroundAppScanState)); UtAssert_INT32_EQ(UtAppRecPtr->ControlReq.AppTimerMsec, 0); CFE_UtAssert_EVENTSENT(CFE_ES_PCR_ERR2_EID); @@ -1198,7 +1325,7 @@ void TestApps(void) ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_WAITING, NULL, &UtAppRecPtr, NULL); UtAppRecPtr->ControlReq.AppControlRequest = CFE_ES_RunStatus_APP_EXIT; UtAppRecPtr->ControlReq.AppTimerMsec = 5000; - CFE_ES_RunAppTableScan(1000, &CFE_ES_Global.BackgroundAppScanState); + UtAssert_BOOL_TRUE(CFE_ES_RunAppTableScan(1000, &CFE_ES_Global.BackgroundAppScanState)); UtAssert_INT32_EQ(UtAppRecPtr->ControlReq.AppTimerMsec, 4000); UtAssert_UINT32_EQ(UtAppRecPtr->ControlReq.AppControlRequest, CFE_ES_RunStatus_APP_EXIT); @@ -1209,7 +1336,7 @@ void TestApps(void) ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_STOPPED, NULL, &UtAppRecPtr, NULL); UtAppRecPtr->ControlReq.AppControlRequest = CFE_ES_RunStatus_APP_RUN; UtAppRecPtr->ControlReq.AppTimerMsec = 0; - CFE_ES_RunAppTableScan(0, &CFE_ES_Global.BackgroundAppScanState); + UtAssert_BOOL_TRUE(CFE_ES_RunAppTableScan(0, &CFE_ES_Global.BackgroundAppScanState)); UtAssert_INT32_EQ(UtAppRecPtr->ControlReq.AppTimerMsec, 0); CFE_UtAssert_EVENTSENT(CFE_ES_PCR_ERR2_EID); @@ -1220,7 +1347,7 @@ void TestApps(void) ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, NULL, &UtAppRecPtr, NULL); UtAppRecPtr->ControlReq.AppControlRequest = CFE_ES_RunStatus_APP_EXIT; UtAppRecPtr->ControlReq.AppTimerMsec = 0; - CFE_ES_RunAppTableScan(0, &CFE_ES_Global.BackgroundAppScanState); + UtAssert_BOOL_FALSE(CFE_ES_RunAppTableScan(0, &CFE_ES_Global.BackgroundAppScanState)); UtAssert_INT32_EQ(UtAppRecPtr->ControlReq.AppTimerMsec, CFE_PLATFORM_ES_APP_KILL_TIMEOUT * CFE_PLATFORM_ES_APP_SCAN_RATE); @@ -1229,8 +1356,9 @@ void TestApps(void) */ ES_ResetUnitTest(); ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_EARLY_INIT, NULL, &UtAppRecPtr, NULL); - UtAppRecPtr->ControlReq.AppTimerMsec = 5000; - CFE_ES_RunAppTableScan(0, &CFE_ES_Global.BackgroundAppScanState); + UtAppRecPtr->ControlReq.AppTimerMsec = 5000; + CFE_ES_Global.BackgroundAppScanState.PendingAppStateChanges = 1; + UtAssert_BOOL_FALSE(CFE_ES_RunAppTableScan(0, &CFE_ES_Global.BackgroundAppScanState)); UtAssert_INT32_EQ(UtAppRecPtr->ControlReq.AppTimerMsec, 5000); CFE_UtAssert_EVENTCOUNT(0); @@ -1382,12 +1510,29 @@ void TestApps(void) UtAssert_VOIDCALL(CFE_ES_ProcessControlRequest(AppId)); CFE_UtAssert_EVENTSENT(CFE_ES_PCR_ERR1_EID); + /* Control action with mismatched ID */ + ES_ResetUnitTest(); + ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, NULL, &UtAppRecPtr, NULL); + UtAppRecPtr->AppId = CFE_ES_APPID_UNDEFINED; + UtAssert_VOIDCALL(CFE_ES_ProcessControlRequest(AppId)); + CFE_UtAssert_EVENTSENT(CFE_ES_PCR_ERR2_EID); + /* Test populating the application information structure with data */ ES_ResetUnitTest(); ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, NULL, &UtAppRecPtr, NULL); AppId = CFE_ES_AppRecordGetID(UtAppRecPtr); CFE_UtAssert_SUCCESS(CFE_ES_GetAppInfo(&AppInfo, AppId)); + /* Two main/child pairs, assert count of child tasks */ + ES_ResetUnitTest(); + ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, NULL, &UtAppRecPtr, NULL); + AppId = CFE_ES_AppRecordGetID(UtAppRecPtr); + ES_UT_SetupChildTaskId(UtAppRecPtr, NULL, NULL); + ES_UT_SetupSingleAppId(CFE_ES_AppType_CORE, CFE_ES_AppState_RUNNING, NULL, &UtAppRecPtr1, NULL); + ES_UT_SetupChildTaskId(UtAppRecPtr1, NULL, NULL); + CFE_UtAssert_SUCCESS(CFE_ES_GetAppInfo(&AppInfo, AppId)); + UtAssert_UINT32_EQ(AppInfo.NumOfChildTasks, 1); + /* Test populating the application information structure with data using * a null application information pointer */ @@ -1552,6 +1697,13 @@ void TestApps(void) UT_SetDefaultReturnValue(UT_KEY(OS_TaskDelete), OS_ERROR); UtAssert_INT32_EQ(CFE_ES_CleanupTaskResources(TaskId), CFE_ES_TASK_DELETE_ERR); + /* Clean up resources where task self exited */ + ES_ResetUnitTest(); + ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, NULL, NULL, &UtTaskRecPtr); + TaskId = CFE_ES_TaskRecordGetID(UtTaskRecPtr); + UT_SetDefaultReturnValue(UT_KEY(OS_TaskDelete), OS_ERR_INVALID_ID); + CFE_UtAssert_SUCCESS(CFE_ES_CleanupTaskResources(TaskId)); + /* Test successfully cleaning up the OS resources for a task */ ES_ResetUnitTest(); ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, NULL, NULL, &UtTaskRecPtr); @@ -1559,6 +1711,21 @@ void TestApps(void) UT_SetDeferredRetcode(UT_KEY(OS_TimerGetInfo), 1, OS_ERROR); CFE_UtAssert_SUCCESS(CFE_ES_CleanupTaskResources(TaskId)); + /* Override OS_ForEachObject to provide increasing number of objects */ + ES_ResetUnitTest(); + ObjCount = 1; + ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, NULL, NULL, &UtTaskRecPtr); + TaskId = CFE_ES_TaskRecordGetID(UtTaskRecPtr); + UT_SetHandlerFunction(UT_KEY(OS_ForEachObject), ES_UT_ForEachObjectIncrease, &ObjCount); + UtAssert_INT32_EQ(CFE_ES_CleanupTaskResources(TaskId), CFE_ES_APP_CLEANUP_ERR); + + /* Override OS_ForEachObject to get zero deleted (but nonzero objects )*/ + ES_ResetUnitTest(); + ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, NULL, NULL, &UtTaskRecPtr); + TaskId = CFE_ES_TaskRecordGetID(UtTaskRecPtr); + UT_SetHandlerFunction(UT_KEY(OS_ForEachObject), ES_UT_ForEachObjectFail, NULL); + UtAssert_INT32_EQ(CFE_ES_CleanupTaskResources(TaskId), CFE_ES_APP_CLEANUP_ERR); + /* Test parsing the startup script for a cFE application and a restart * application exception action */ @@ -1585,7 +1752,7 @@ void TestApps(void) ES_ResetUnitTest(); ES_UT_SetupSingleAppId(CFE_ES_AppType_CORE, CFE_ES_AppState_WAITING, NULL, &UtAppRecPtr, NULL); UtAppRecPtr->ControlReq.AppTimerMsec = 0; - CFE_ES_RunAppTableScan(0, &CFE_ES_Global.BackgroundAppScanState); + UtAssert_BOOL_FALSE(CFE_ES_RunAppTableScan(0, &CFE_ES_Global.BackgroundAppScanState)); UtAssert_INT32_EQ(UtAppRecPtr->ControlReq.AppTimerMsec, 0); CFE_UtAssert_EVENTCOUNT(0); @@ -1595,7 +1762,16 @@ void TestApps(void) ES_ResetUnitTest(); ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, NULL, &UtAppRecPtr, NULL); UtAppRecPtr->ControlReq.AppTimerMsec = 0; - CFE_ES_RunAppTableScan(0, &CFE_ES_Global.BackgroundAppScanState); + UtAssert_BOOL_FALSE(CFE_ES_RunAppTableScan(0, &CFE_ES_Global.BackgroundAppScanState)); + UtAssert_INT32_EQ(UtAppRecPtr->ControlReq.AppTimerMsec, 0); + CFE_UtAssert_EVENTCOUNT(0); + + /* Scan where command counter changed */ + ES_ResetUnitTest(); + ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, NULL, &UtAppRecPtr, NULL); + UtAppRecPtr->ControlReq.AppTimerMsec = 0; + CFE_ES_Global.BackgroundAppScanState.LastScanCommandCount = CFE_ES_Global.TaskData.CommandCounter + 1; + UtAssert_BOOL_FALSE(CFE_ES_RunAppTableScan(0, &CFE_ES_Global.BackgroundAppScanState)); UtAssert_INT32_EQ(UtAppRecPtr->ControlReq.AppTimerMsec, 0); CFE_UtAssert_EVENTCOUNT(0); @@ -1617,17 +1793,19 @@ void TestApps(void) UtAssert_BOOL_FALSE(CFE_ES_MemPoolRecordIsUsed(UtPoolRecPtr)); /* Test deleting an application and cleaning up its resources where the - * main task and child task need to be swapped + * main task and child task need to be swapped and there is a mempool not owned by the app */ ES_ResetUnitTest(); ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, NULL, &UtAppRecPtr, NULL); + ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, NULL, &UtAppRecPtr1, NULL); ES_UT_SetupMemPoolId(&UtPoolRecPtr); - UtPoolRecPtr->OwnerAppID = CFE_ES_AppRecordGetID(UtAppRecPtr); + UtPoolRecPtr->OwnerAppID = CFE_ES_AppRecordGetID(UtAppRecPtr1); ES_UT_SetupChildTaskId(UtAppRecPtr, NULL, &UtTaskRecPtr); AppId = CFE_ES_AppRecordGetID(UtAppRecPtr); /* Set MainTask to Child task's ID. Cleanup code will swap the order. */ UtAppRecPtr->MainTaskId = UtTaskRecPtr->TaskId; CFE_UtAssert_SUCCESS(CFE_ES_CleanUpApp(AppId)); + UtAssert_BOOL_TRUE(CFE_ES_MemPoolRecordIsUsed(UtPoolRecPtr)); /* Test deleting an application and cleaning up its resources where the * memory pool deletion fails @@ -1708,6 +1886,17 @@ void TestApps(void) UT_SetDeferredRetcode(UT_KEY(OS_TimerGetInfo), 1, OS_ERROR); UT_SetDeferredRetcode(UT_KEY(OS_FDGetInfo), 1, OS_ERROR); CFE_UtAssert_SUCCESS(CFE_ES_CleanupTaskResources(TaskId)); + + /* Corrupt the App/Task records as part of cleanup for branch coverage */ + ES_ResetUnitTest(); + ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, NULL, &UtAppRecPtr, &UtTaskRecPtr); + AppId = CFE_ES_AppRecordGetID(UtAppRecPtr); + TaskId = CFE_ES_TaskRecordGetID(UtTaskRecPtr); + /* Register the handler to set records back to used */ + UT_SetHandlerFunction(UT_KEY(CFE_SB_CleanUpApp), ES_UT_UsedAppTask, &TaskId); + CFE_UtAssert_SUCCESS(CFE_ES_CleanUpApp(AppId)); + UtAssert_BOOL_TRUE(CFE_ES_TaskRecordIsUsed(UtTaskRecPtr)); + UtAssert_BOOL_TRUE(CFE_ES_AppRecordIsUsed(UtAppRecPtr)); } void TestResourceID(void) @@ -1745,6 +1934,7 @@ void TestLibs(void) char LongLibraryName[sizeof(UtLibRecPtr->LibName) + 1]; CFE_ES_LibId_t Id; CFE_ES_ModuleLoadParams_t LoadParams; + CFE_ES_AppInfo_t LibInfo; /* Test shared library loading and initialization where the initialization * routine returns an error @@ -1777,6 +1967,10 @@ void TestLibs(void) UtAssert_INT32_EQ(CFE_ES_LoadLibrary(&Id, "TST_LIB", &LoadParams), CFE_ES_ERR_DUPLICATE_NAME); CFE_UtAssert_RESOURCEID_EQ(Id, CFE_ES_LibRecordGetID(UtLibRecPtr)); + /* Add an app and exercise name conflict */ + ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_EARLY_INIT, "Conflict", NULL, NULL); + UtAssert_INT32_EQ(CFE_ES_LoadLibrary(&Id, "Conflict", &LoadParams), CFE_ES_ERR_DUPLICATE_NAME); + /* Test shared library loading and initialization where the library * fails to load */ @@ -1833,6 +2027,8 @@ void TestLibs(void) CFE_ES_Global.LibTable[2].LibId = CFE_ES_LIBID_UNDEFINED; UtAssert_BOOL_TRUE(CFE_ES_CheckLibIdSlotUsed(ES_UT_MakeLibIdForIndex(1))); UtAssert_BOOL_FALSE(CFE_ES_CheckLibIdSlotUsed(ES_UT_MakeLibIdForIndex(2))); + UtAssert_BOOL_TRUE(CFE_ES_CheckLibIdSlotUsed(CFE_RESOURCEID_UNDEFINED)); + /* * Test public Name+ID query/lookup API */ @@ -1846,7 +2042,13 @@ void TestLibs(void) UtAssert_INT32_EQ(CFE_ES_GetLibName(LongLibraryName, CFE_ES_LIBID_UNDEFINED, sizeof(LongLibraryName)), CFE_ES_ERR_RESOURCEID_NOT_VALID); UtAssert_INT32_EQ(CFE_ES_GetLibName(NULL, Id, sizeof(LongLibraryName)), CFE_ES_BAD_ARGUMENT); + UtAssert_INT32_EQ(CFE_ES_GetLibName(LongLibraryName, Id, 0), CFE_ES_BAD_ARGUMENT); UtAssert_INT32_EQ(CFE_ES_GetLibIDByName(&Id, NULL), CFE_ES_BAD_ARGUMENT); + UtAssert_INT32_EQ(CFE_ES_GetLibIDByName(NULL, "NotNULL"), CFE_ES_BAD_ARGUMENT); + UtAssert_INT32_EQ(CFE_ES_GetLibInfo(NULL, Id), CFE_ES_BAD_ARGUMENT); + UtAssert_INT32_EQ(CFE_ES_GetLibInfo(&LibInfo, CFE_ES_LIBID_UNDEFINED), CFE_ES_ERR_RESOURCEID_NOT_VALID); + CFE_UtAssert_SUCCESS(CFE_ES_GetLibInfo(&LibInfo, Id)); + UtAssert_INT32_EQ(CFE_ES_GetModuleInfo(NULL, CFE_RESOURCEID_UNDEFINED), CFE_ES_ERR_RESOURCEID_NOT_VALID); } void TestERLog(void) @@ -1857,7 +2059,7 @@ void TestERLog(void) UtPrintf("Begin Test Exception and Reset Log"); - /* Test initial rolling over log entry, + /* Test invalid log index, * null description, * and non-null context with small size */ @@ -1869,6 +2071,18 @@ void TestERLog(void) sizeof(CFE_ES_Global.ResetDataPtr->ERLog[0].BaseInfo.Description), "No Description String Given.", SIZE_MAX); + /* Test rollover log index, + * null description, + * and non-null context with small size + */ + ES_ResetUnitTest(); + CFE_ES_Global.ResetDataPtr->ERLogIndex = CFE_PLATFORM_ES_ER_LOG_ENTRIES - 1; + CFE_UtAssert_SUCCESS(CFE_ES_WriteToERLog(CFE_ES_LogEntryType_CORE, CFE_PSP_RST_TYPE_POWERON, 1, NULL)); + UtAssert_UINT32_EQ(CFE_ES_Global.ResetDataPtr->ERLogIndex, 0); + UtAssert_STRINGBUF_EQ(CFE_ES_Global.ResetDataPtr->ERLog[0].BaseInfo.Description, + sizeof(CFE_ES_Global.ResetDataPtr->ERLog[0].BaseInfo.Description), + "No Description String Given.", SIZE_MAX); + /* Test non-rolling over log entry, * null description, * and null context @@ -1944,8 +2158,9 @@ void TestGenericPool(void) * so that the implementation will sort them. */ 16, 56, 60, 40, 44, 48, 64, 128, 20, 24, 28, 12, 52, 32, 4, 8, 36}; - uint16 i; - uint32 ExpectedCount; + uint16 i; + uint32 ExpectedCount; + CFE_ES_GenPoolBD_t *BdPtr; ES_ResetUnitTest(); @@ -1998,9 +2213,16 @@ void TestGenericPool(void) UtAssert_INT32_EQ(CFE_ES_GenPoolGetBlock(&Pool1, &Offset1, 1000), CFE_ES_ERR_MEM_BLOCK_SIZE); /* Call stats functions for coverage (no return code) */ - CFE_ES_GenPoolGetUsage(&Pool1, &FreeSize, &TotalSize); - CFE_ES_GenPoolGetCounts(&Pool1, &NumBlocks, &CountBuf, &ErrBuf); - CFE_ES_GenPoolGetBucketUsage(&Pool1, 1, &BlockStats); + UtAssert_VOIDCALL(CFE_ES_GenPoolGetUsage(&Pool1, &FreeSize, &TotalSize)); + UtAssert_VOIDCALL(CFE_ES_GenPoolGetUsage(&Pool1, NULL, &TotalSize)); + UtAssert_VOIDCALL(CFE_ES_GenPoolGetUsage(&Pool1, &FreeSize, NULL)); + UtAssert_VOIDCALL(CFE_ES_GenPoolGetCounts(&Pool1, &NumBlocks, &CountBuf, &ErrBuf)); + UtAssert_VOIDCALL(CFE_ES_GenPoolGetCounts(&Pool1, &NumBlocks, &CountBuf, NULL)); + UtAssert_VOIDCALL(CFE_ES_GenPoolGetCounts(&Pool1, &NumBlocks, NULL, &ErrBuf)); + UtAssert_VOIDCALL(CFE_ES_GenPoolGetCounts(&Pool1, NULL, &CountBuf, &ErrBuf)); + UtAssert_VOIDCALL(CFE_ES_GenPoolGetBucketUsage(&Pool1, 1, &BlockStats)); + UtAssert_VOIDCALL(CFE_ES_GenPoolGetBucketUsage(&Pool1, 1, NULL)); + UtAssert_VOIDCALL(CFE_ES_GenPoolGetBucketUsage(&Pool1, Pool1.NumBuckets + 1, &BlockStats)); /* Check various outputs to ensure correctness */ CFE_UtAssert_MEMOFFSET_EQ(TotalSize, OffsetEnd); @@ -2087,7 +2309,7 @@ void TestGenericPool(void) * because its now fragmented. */ UtAssert_INT32_EQ(CFE_ES_GenPoolGetBlock(&Pool2, &Offset2, 12), CFE_ES_ERR_MEM_BLOCK_SIZE); - /* Put the buffer, then corrupt the memory and try to recycle */ + /* Put the buffer, then corrupt the buffer descriptor and try to recycle */ CFE_UtAssert_SUCCESS(CFE_ES_GenPoolPutBlock(&Pool2, &BlockSize, Offset3)); memset(UT_MemPoolIndirectBuffer.Data, 0xee, sizeof(UT_MemPoolIndirectBuffer.Data)); UtAssert_INT32_EQ(CFE_ES_GenPoolGetBlock(&Pool2, &Offset3, 56), CFE_ES_ERR_MEM_BLOCK_SIZE); @@ -2124,8 +2346,107 @@ void TestGenericPool(void) UtAssert_INT32_EQ(CFE_ES_GenPoolPutBlock(&Pool1, &BlockSize, 0), CFE_ES_BUFFER_NOT_IN_POOL); UtAssert_BOOL_TRUE(CFE_ES_GenPoolValidateState(&Pool1)); - Pool1.TailPosition = 0xFFFFFF; + Pool1.NumBuckets = CFE_PLATFORM_ES_POOL_MAX_BUCKETS + 1; UtAssert_BOOL_FALSE(CFE_ES_GenPoolValidateState(&Pool1)); + + Pool1.NumBuckets = 0; + UtAssert_BOOL_FALSE(CFE_ES_GenPoolValidateState(&Pool1)); + Pool1.NumBuckets = CFE_PLATFORM_ES_POOL_MAX_BUCKETS; + + Pool1.TailPosition = Pool1.PoolMaxOffset + 1; + UtAssert_BOOL_FALSE(CFE_ES_GenPoolValidateState(&Pool1)); + Pool1.TailPosition = Pool1.PoolMaxOffset; + + Pool1.PoolTotalSize = 0; + UtAssert_BOOL_FALSE(CFE_ES_GenPoolValidateState(&Pool1)); + + /* Recycle pool bad firstoffset, note creating new will still pass */ + ES_ResetUnitTest(); + CFE_UtAssert_SUCCESS(CFE_ES_GenPoolInitialize(&Pool1, 0, sizeof(UT_MemPoolIndirectBuffer.Data), 32, + CFE_PLATFORM_ES_POOL_MAX_BUCKETS, UT_POOL_BLOCK_SIZES, + ES_UT_PoolDirectRetrieve, ES_UT_PoolDirectCommit)); + CFE_UtAssert_SETUP(CFE_ES_GenPoolGetBlock(&Pool1, &Offset1, Pool1.Buckets[0].BlockSize)); + CFE_UtAssert_SETUP(CFE_ES_GenPoolPutBlock(&Pool1, &BlockSize, Offset1)); + Pool1.Buckets[0].FirstOffset = 0; + CFE_UtAssert_SUCCESS(CFE_ES_GenPoolGetBlock(&Pool1, &Offset1, Pool1.Buckets[0].BlockSize)); + + /* Recycle pool buf with bad allocation info */ + ES_ResetUnitTest(); + CFE_UtAssert_SUCCESS(CFE_ES_GenPoolInitialize(&Pool1, 0, sizeof(UT_MemPoolIndirectBuffer.Data), 32, + CFE_PLATFORM_ES_POOL_MAX_BUCKETS, UT_POOL_BLOCK_SIZES, + ES_UT_PoolDirectRetrieve, ES_UT_PoolDirectCommit)); + CFE_UtAssert_SETUP(CFE_ES_GenPoolGetBlock(&Pool1, &Offset1, Pool1.Buckets[0].BlockSize)); + CFE_UtAssert_SETUP(CFE_ES_GenPoolPutBlock(&Pool1, &BlockSize, Offset1)); + CFE_UtAssert_SETUP(ES_UT_PoolDirectRetrieve(&Pool1, Offset1 - CFE_ES_GENERIC_POOL_DESCRIPTOR_SIZE, &BdPtr)); + BdPtr->Allocated = 0; + CFE_UtAssert_SUCCESS(CFE_ES_GenPoolGetBlock(&Pool1, &Offset1, Pool1.Buckets[0].BlockSize)); + + /* Retrieve failures, need to manually set up buffer for recycle */ + ES_ResetUnitTest(); + CFE_UtAssert_SUCCESS(CFE_ES_GenPoolInitialize(&Pool1, 0, sizeof(UT_MemPoolIndirectBuffer.Data), 32, + CFE_PLATFORM_ES_POOL_MAX_BUCKETS, UT_POOL_BLOCK_SIZES, + ES_UT_PoolRetrieveFail, ES_UT_PoolDirectCommit)); + Pool1.Buckets[0].FirstOffset = 2; + Pool1.Buckets[0].ReleaseCount = Pool1.Buckets[0].RecycleCount + 1; + UtAssert_INT32_EQ(CFE_ES_GenPoolGetBlock(&Pool1, &Offset1, Pool1.Buckets[0].BlockSize), CFE_ES_CDS_ACCESS_ERROR); + + /* Commit failures */ + ES_ResetUnitTest(); + CFE_UtAssert_SUCCESS(CFE_ES_GenPoolInitialize(&Pool1, 0, sizeof(UT_MemPoolIndirectBuffer.Data), 32, + CFE_PLATFORM_ES_POOL_MAX_BUCKETS, UT_POOL_BLOCK_SIZES, + ES_UT_PoolDirectRetrieve, ES_UT_PoolCommitFail)); + Pool1.Buckets[0].FirstOffset = CFE_ES_GENERIC_POOL_DESCRIPTOR_SIZE; + Pool1.Buckets[0].ReleaseCount = Pool1.Buckets[0].RecycleCount + 1; + CFE_UtAssert_SETUP(ES_UT_PoolDirectRetrieve(&Pool1, 0, &BdPtr)); + BdPtr->CheckBits = CFE_ES_CHECK_PATTERN; + BdPtr->Allocated = Pool1.NumBuckets + CFE_ES_MEMORY_DEALLOCATED; + UtAssert_INT32_EQ(CFE_ES_GenPoolGetBlock(&Pool1, &Offset1, Pool1.Buckets[0].BlockSize), CFE_ES_CDS_ACCESS_ERROR); + + /* Branch coverage for zero block sizes case */ + UtAssert_ZERO(CFE_ES_GenPoolCalcMinSize(0, NULL, 0)); + + /* Branch coverage of error cases for getting block sizes */ + ES_ResetUnitTest(); + CFE_UtAssert_SUCCESS(CFE_ES_GenPoolInitialize(&Pool1, 0, sizeof(UT_MemPoolIndirectBuffer.Data), 32, + CFE_PLATFORM_ES_POOL_MAX_BUCKETS, UT_POOL_BLOCK_SIZES, + ES_UT_PoolDirectRetrieve, ES_UT_PoolDirectCommit)); + CFE_UtAssert_SETUP(CFE_ES_GenPoolGetBlock(&Pool1, &Offset1, Pool1.Buckets[0].BlockSize)); + CFE_UtAssert_SETUP(ES_UT_PoolDirectRetrieve(&Pool1, Offset1 - CFE_ES_GENERIC_POOL_DESCRIPTOR_SIZE, &BdPtr)); + + BdPtr->ActualSize = Pool1.Buckets[0].BlockSize + 1; + UtAssert_INT32_EQ(CFE_ES_GenPoolGetBlockSize(&Pool1, &BlockSize, Offset1), CFE_ES_POOL_BLOCK_INVALID); + + BdPtr->ActualSize = 0; + UtAssert_INT32_EQ(CFE_ES_GenPoolGetBlockSize(&Pool1, &BlockSize, Offset1), CFE_ES_POOL_BLOCK_INVALID); + + UtAssert_INT32_EQ(CFE_ES_GenPoolGetBlockSize(&Pool1, NULL, 0), CFE_ES_BUFFER_NOT_IN_POOL); + + /* Put pool block with bad allocation info */ + ES_ResetUnitTest(); + CFE_UtAssert_SUCCESS(CFE_ES_GenPoolInitialize(&Pool1, 0, sizeof(UT_MemPoolIndirectBuffer.Data), 32, + CFE_PLATFORM_ES_POOL_MAX_BUCKETS, UT_POOL_BLOCK_SIZES, + ES_UT_PoolDirectRetrieve, ES_UT_PoolDirectCommit)); + CFE_UtAssert_SETUP(CFE_ES_GenPoolGetBlock(&Pool1, &Offset1, Pool1.Buckets[0].BlockSize)); + CFE_UtAssert_SETUP(ES_UT_PoolDirectRetrieve(&Pool1, Offset1 - CFE_ES_GENERIC_POOL_DESCRIPTOR_SIZE, &BdPtr)); + BdPtr->CheckBits = ~CFE_ES_CHECK_PATTERN; + UtAssert_INT32_EQ(CFE_ES_GenPoolPutBlock(&Pool1, &BlockSize, Offset1), CFE_ES_POOL_BLOCK_INVALID); + BdPtr->CheckBits = CFE_ES_CHECK_PATTERN; + BdPtr->ActualSize = 0; + UtAssert_INT32_EQ(CFE_ES_GenPoolPutBlock(&Pool1, &BlockSize, Offset1), CFE_ES_POOL_BLOCK_INVALID); + + /* Rebuild generic pool actual size error cases */ + ES_ResetUnitTest(); + CFE_UtAssert_SUCCESS(CFE_ES_GenPoolInitialize(&Pool1, 0, sizeof(UT_MemPoolIndirectBuffer.Data), 32, + CFE_PLATFORM_ES_POOL_MAX_BUCKETS, UT_POOL_BLOCK_SIZES, + ES_UT_PoolDirectRetrieve, ES_UT_PoolDirectCommit)); + /* Create an entry */ + CFE_UtAssert_SETUP(CFE_ES_GenPoolGetBlock(&Pool1, &Offset1, Pool1.Buckets[0].BlockSize)); + CFE_UtAssert_SETUP(ES_UT_PoolDirectRetrieve(&Pool1, Offset1 - CFE_ES_GENERIC_POOL_DESCRIPTOR_SIZE, &BdPtr)); + /* Corrupt the entry */ + BdPtr->ActualSize = Pool1.Buckets[0].BlockSize + 1; + /* Reset the structure so it will rebuild */ + Pool1.TailPosition = 0; + CFE_UtAssert_SUCCESS(CFE_ES_GenPoolRebuild(&Pool1)); } void TestTask(void) @@ -2156,10 +2477,14 @@ void TestTask(void) CFE_ES_QueryAllTasksCmd_t QueryAllTasksCmd; } CmdBuf; CFE_ES_AppRecord_t * UtAppRecPtr; + CFE_ES_AppRecord_t * UtAppRecPtr1; CFE_ES_TaskRecord_t * UtTaskRecPtr; CFE_ES_CDS_RegRec_t * UtCDSRegRecPtr; CFE_ES_MemPoolRecord_t *UtPoolRecPtr; CFE_SB_MsgId_t MsgId = CFE_SB_INVALID_MSG_ID; + CFE_ES_TaskId_t TaskId; + uint32 Idx; + uint32 Idx1; UtPrintf("Begin Test Task"); @@ -2481,6 +2806,16 @@ void TestTask(void) UT_CallTaskPipe(CFE_ES_TaskPipe, &CmdBuf.Msg, sizeof(CmdBuf.ReloadAppCmd), UT_TPID_CFE_ES_CMD_RELOAD_APP_CC); CFE_UtAssert_EVENTSENT(CFE_ES_RELOAD_APP_DBG_EID); + /* Test app reload with filename parse error */ + ES_ResetUnitTest(); + memset(&CmdBuf, 0, sizeof(CmdBuf)); + ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, "CFE_ES", NULL, NULL); + strncpy(CmdBuf.ReloadAppCmd.Payload.Application, "CFE_ES", sizeof(CmdBuf.ReloadAppCmd.Payload.Application) - 1); + CmdBuf.ReloadAppCmd.Payload.Application[sizeof(CmdBuf.ReloadAppCmd.Payload.Application) - 1] = '\0'; + UT_SetDeferredRetcode(UT_KEY(CFE_FS_ParseInputFileNameEx), 1, CFE_FS_INVALID_PATH); + UT_CallTaskPipe(CFE_ES_TaskPipe, &CmdBuf.Msg, sizeof(CmdBuf.ReloadAppCmd), UT_TPID_CFE_ES_CMD_RELOAD_APP_CC); + CFE_UtAssert_EVENTSENT(CFE_ES_RELOAD_APP_ERR1_EID); + /* Test app reload with missing file */ ES_ResetUnitTest(); memset(&CmdBuf, 0, sizeof(CmdBuf)); @@ -2609,6 +2944,17 @@ void TestTask(void) UT_TPID_CFE_ES_CMD_QUERY_ALL_TASKS_CC); CFE_UtAssert_EVENTSENT(CFE_ES_TASKINFO_EID); + /* Test write of all task data with a task that becomes unused after first scan */ + ES_ResetUnitTest(); + memset(&CmdBuf, 0, sizeof(CmdBuf)); + ES_UT_SetupSingleAppId(CFE_ES_AppType_CORE, CFE_ES_AppState_RUNNING, "CFE_ES", NULL, &UtTaskRecPtr); + TaskId = CFE_ES_TaskRecordGetID(UtTaskRecPtr); + UT_SetHandlerFunction(UT_KEY(CFE_FS_InitHeader), ES_UT_UnusedAppTask, &TaskId); + UT_CallTaskPipe(CFE_ES_TaskPipe, &CmdBuf.Msg, sizeof(CmdBuf.QueryAllTasksCmd), + UT_TPID_CFE_ES_CMD_QUERY_ALL_TASKS_CC); + CFE_UtAssert_EVENTSENT(CFE_ES_TASKINFO_EID); + /* TODO */ + /* Test write of all task data to a file with file name validation failure */ ES_ResetUnitTest(); memset(&CmdBuf, 0, sizeof(CmdBuf)); @@ -2650,7 +2996,7 @@ void TestTask(void) UT_CallTaskPipe(CFE_ES_TaskPipe, &CmdBuf.Msg, sizeof(CmdBuf.ClearSysLogCmd), UT_TPID_CFE_ES_CMD_CLEAR_SYSLOG_CC); CFE_UtAssert_EVENTSENT(CFE_ES_SYSLOG1_INF_EID); - /* Test successful overwriting of the system log using discard mode */ + /* Test successful overwriting of the system log using overwrite mode */ ES_ResetUnitTest(); memset(&CmdBuf, 0, sizeof(CmdBuf)); CmdBuf.OverwriteSysLogCmd.Payload.Mode = CFE_ES_LogMode_OVERWRITE; @@ -2658,6 +3004,14 @@ void TestTask(void) UT_TPID_CFE_ES_CMD_OVER_WRITE_SYSLOG_CC); CFE_UtAssert_EVENTSENT(CFE_ES_SYSLOGMODE_EID); + /* Test successful overwriting of the system log using discard mode */ + ES_ResetUnitTest(); + memset(&CmdBuf, 0, sizeof(CmdBuf)); + CmdBuf.OverwriteSysLogCmd.Payload.Mode = CFE_ES_LogMode_DISCARD; + UT_CallTaskPipe(CFE_ES_TaskPipe, &CmdBuf.Msg, sizeof(CmdBuf.OverwriteSysLogCmd), + UT_TPID_CFE_ES_CMD_OVER_WRITE_SYSLOG_CC); + CFE_UtAssert_EVENTSENT(CFE_ES_SYSLOGMODE_EID); + /* Test overwriting the system log using an invalid mode */ ES_ResetUnitTest(); memset(&CmdBuf, 0, sizeof(CmdBuf)); @@ -2783,6 +3137,53 @@ void TestTask(void) UtAssert_INT32_EQ(UtAppRecPtr->ControlReq.AppControlRequest, CFE_ES_RunStatus_SYS_RESTART); UtAssert_STUB_COUNT(CFE_PSP_Restart, 0); + /* app restart without the restart app exception action should do system restart */ + ES_ResetUnitTest(); + UT_SetDefaultReturnValue(UT_KEY(CFE_PSP_Exception_GetCount), 1); + ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, NULL, &UtAppRecPtr, &UtTaskRecPtr); + UT_ContextTask = CFE_ES_TaskId_ToOSAL(CFE_ES_TaskRecordGetID(UtTaskRecPtr)); + UT_SetDataBuffer(UT_KEY(CFE_PSP_Exception_GetSummary), &UT_ContextTask, sizeof(UT_ContextTask), false); + UtAppRecPtr->ControlReq.AppControlRequest = CFE_ES_RunStatus_APP_RUN; + UtAppRecPtr->StartParams.ExceptionAction = CFE_ES_ExceptionAction_PROC_RESTART; + CFE_ES_RunExceptionScan(0, NULL); + UtAssert_STUB_COUNT(CFE_PSP_Restart, 1); + + /* app out of sync restart with restart app request should do system restart */ + ES_ResetUnitTest(); + UT_SetDefaultReturnValue(UT_KEY(CFE_PSP_Exception_GetCount), 1); + ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, NULL, &UtAppRecPtr, &UtTaskRecPtr); + ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, NULL, &UtAppRecPtr1, NULL); + UT_ContextTask = CFE_ES_TaskId_ToOSAL(CFE_ES_TaskRecordGetID(UtTaskRecPtr)); + UT_SetDataBuffer(UT_KEY(CFE_PSP_Exception_GetSummary), &UT_ContextTask, sizeof(UT_ContextTask), false); + UtAppRecPtr->ControlReq.AppControlRequest = CFE_ES_RunStatus_APP_RUN; + UtAppRecPtr->StartParams.ExceptionAction = CFE_ES_ExceptionAction_RESTART_APP; + CFE_UtAssert_SETUP(CFE_ES_AppID_ToIndex(UtAppRecPtr->AppId, &Idx)); + CFE_UtAssert_SETUP(CFE_ES_AppID_ToIndex(UtAppRecPtr1->AppId, &Idx1)); + + /* Match on the first conversion, corrupt for the second */ + UT_SetDataBuffer(UT_KEY(CFE_ResourceId_ToIndex), &Idx, sizeof(Idx1), false); + UT_SetDataBuffer(UT_KEY(CFE_ResourceId_ToIndex), &Idx1, sizeof(Idx), false); + UtAppRecPtr1->StartParams.ExceptionAction = CFE_ES_ExceptionAction_RESTART_APP; + CFE_ES_RunExceptionScan(0, NULL); + UtAssert_STUB_COUNT(CFE_PSP_Restart, 1); + + /* CFE_ES_GetTaskInfo failure */ + ES_ResetUnitTest(); + UT_SetDefaultReturnValue(UT_KEY(CFE_PSP_Exception_GetCount), 1); + ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, NULL, &UtAppRecPtr, &UtTaskRecPtr); + ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, NULL, &UtAppRecPtr1, NULL); + UT_ContextTask = CFE_ES_TaskId_ToOSAL(CFE_ES_TaskRecordGetID(UtTaskRecPtr)); + UT_SetDataBuffer(UT_KEY(CFE_PSP_Exception_GetSummary), &UT_ContextTask, sizeof(UT_ContextTask), false); + UtAppRecPtr->ControlReq.AppControlRequest = CFE_ES_RunStatus_APP_RUN; + UtAppRecPtr->StartParams.ExceptionAction = CFE_ES_ExceptionAction_RESTART_APP; + CFE_UtAssert_SETUP(CFE_ES_AppID_ToIndex(UtAppRecPtr->AppId, &Idx)); + CFE_UtAssert_SETUP(CFE_ES_AppID_ToIndex(UtAppRecPtr1->AppId, &Idx1)); + + /* Corrupt first index */ + UT_SetDataBuffer(UT_KEY(CFE_ResourceId_ToIndex), &Idx1, sizeof(Idx), false); + UtAppRecPtr1->StartParams.ExceptionAction = CFE_ES_ExceptionAction_RESTART_APP; + CFE_ES_RunExceptionScan(0, NULL); + /* repeat, but for a CORE app, which cannot be restarted */ ES_ResetUnitTest(); UT_SetDefaultReturnValue(UT_KEY(CFE_PSP_Exception_GetCount), 1); @@ -3086,6 +3487,11 @@ void TestTask(void) UT_TPID_CFE_ES_CMD_DUMP_CDS_REGISTRY_CC); CFE_UtAssert_EVENTSENT(CFE_ES_CDS_REG_DUMP_INF_EID); + /* Dump CDS command with invalid length */ + ES_ResetUnitTest(); + UT_CallTaskPipe(CFE_ES_TaskPipe, &CmdBuf.Msg, 0, UT_TPID_CFE_ES_CMD_DUMP_CDS_REGISTRY_CC); + CFE_UtAssert_EVENTSENT(CFE_ES_LEN_ERR_EID); + /* Test error when sending Build Info event */ ES_ResetUnitTest(); UT_SetDeferredRetcode(UT_KEY(CFE_EVS_SendEvent), 1, CFE_EVS_INVALID_PARAMETER); @@ -3185,6 +3591,12 @@ void TestPerf(void) UT_CallTaskPipe(CFE_ES_TaskPipe, &CmdBuf.Msg, sizeof(CmdBuf.PerfStartCmd), UT_TPID_CFE_ES_CMD_START_PERF_DATA_CC); CFE_UtAssert_EVENTSENT(CFE_ES_PERF_STARTCMD_ERR_EID); + /* Check again with pending state not idle */ + CFE_ES_Global.BackgroundPerfDumpState.CurrentState = CFE_ES_PerfDumpState_IDLE; + CFE_ES_Global.BackgroundPerfDumpState.PendingState = CFE_ES_PerfDumpState_INIT; + UT_CallTaskPipe(CFE_ES_TaskPipe, &CmdBuf.Msg, sizeof(CmdBuf.PerfStartCmd), UT_TPID_CFE_ES_CMD_START_PERF_DATA_CC); + CFE_UtAssert_EVENTSENT(CFE_ES_PERF_STARTCMD_ERR_EID); + /* Test performance data collection by sending another valid * start command */ @@ -3227,6 +3639,12 @@ void TestPerf(void) UT_CallTaskPipe(CFE_ES_TaskPipe, &CmdBuf.Msg, sizeof(CmdBuf.PerfStopCmd), UT_TPID_CFE_ES_CMD_STOP_PERF_DATA_CC); CFE_UtAssert_EVENTSENT(CFE_ES_PERF_STOPCMD_ERR2_EID); + /* Repeat with pending state not IDLE */ + CFE_ES_Global.BackgroundPerfDumpState.CurrentState = CFE_ES_PerfDumpState_IDLE; + CFE_ES_Global.BackgroundPerfDumpState.PendingState = CFE_ES_PerfDumpState_INIT; + UT_CallTaskPipe(CFE_ES_TaskPipe, &CmdBuf.Msg, sizeof(CmdBuf.PerfStopCmd), UT_TPID_CFE_ES_CMD_STOP_PERF_DATA_CC); + CFE_UtAssert_EVENTSENT(CFE_ES_PERF_STOPCMD_ERR2_EID); + /* Test performance filter mask command with out of range filter mask value */ ES_ResetUnitTest(); @@ -3315,6 +3733,12 @@ void TestPerf(void) UtAssert_UINT32_EQ(Perf->MetaData.Mode, CFE_ES_PERF_TRIGGER_END); UtAssert_UINT32_EQ(Perf->MetaData.State, CFE_ES_PERF_IDLE); + /* Test addition where state goes to idle after first check */ + ES_ResetUnitTest(); + Perf->MetaData.State = CFE_ES_PERF_TRIGGERED; + UT_SetHandlerFunction(UT_KEY(OS_MutSemTake), ES_UT_SetPerfIdle, NULL); + CFE_ES_PerfLogAdd(1, 0); + /* Test addition of a new entry to the performance log with an invalid * marker after an invalid marker has already been reported */ @@ -3456,6 +3880,22 @@ void TestPerf(void) /* should have written 4 entries to the log */ UtAssert_UINT32_EQ(CFE_ES_Global.BackgroundPerfDumpState.FileSize, sizeof(CFE_ES_PerfDataEntry_t) * 4); + /* Cover close file branch with undefined file descriptor */ + ES_ResetUnitTest(); + memset(&CFE_ES_Global.BackgroundPerfDumpState, 0, sizeof(CFE_ES_Global.BackgroundPerfDumpState)); + CFE_ES_Global.BackgroundPerfDumpState.FileDesc = OS_OBJECT_ID_UNDEFINED; + CFE_ES_Global.BackgroundPerfDumpState.CurrentState = CFE_ES_PerfDumpState_IDLE; + CFE_ES_Global.BackgroundPerfDumpState.PendingState = CFE_ES_PerfDumpState_CLOSE_FILE; + CFE_ES_RunPerfLogDump(1000, &CFE_ES_Global.BackgroundPerfDumpState); + + /* Cover default current state switch branch with nonzero statecounter */ + ES_ResetUnitTest(); + memset(&CFE_ES_Global.BackgroundPerfDumpState, 0, sizeof(CFE_ES_Global.BackgroundPerfDumpState)); + CFE_ES_Global.BackgroundPerfDumpState.StateCounter = 1; + CFE_ES_Global.BackgroundPerfDumpState.CurrentState = CFE_ES_PerfDumpState_INIT; + CFE_ES_Global.BackgroundPerfDumpState.PendingState = CFE_ES_PerfDumpState_INIT; + CFE_ES_RunPerfLogDump(1000, &CFE_ES_Global.BackgroundPerfDumpState); + /* Confirm that the "CFE_ES_GetPerfLogDumpRemaining" function works. * This requires that the state is not idle, in order to get nonzero results. */ @@ -3476,6 +3916,8 @@ void TestAPI(void) { osal_id_t TestObjId; char AppName[OS_MAX_API_NAME + 12]; + char SysLogBuf[CFE_TIME_PRINTED_STRING_SIZE + 20]; + uint32 SysLogBufSize; uint32 StackBuf[8]; uint8 Data[12]; uint32 ResetType; @@ -3489,6 +3931,9 @@ void TestAPI(void) UtPrintf("Begin Test API"); + /* Coverage for processing async event */ + UtAssert_VOIDCALL(CFE_ES_ProcessAsyncEvent()); + /* Test resetting the cFE with a processor reset */ ES_ResetUnitTest(); ResetType = CFE_PSP_RST_TYPE_PROCESSOR; @@ -3523,6 +3968,7 @@ void TestAPI(void) /* Test restarting an app with an ID out of range (high) */ ES_ResetUnitTest(); + UT_SetDeferredRetcode(UT_KEY(CFE_ResourceId_ToIndex), 1, -1); AppId = CFE_ES_APPID_C(ES_UT_MakeAppIdForIndex(99999)); UtAssert_INT32_EQ(CFE_ES_RestartApp(AppId), CFE_ES_ERR_RESOURCEID_NOT_VALID); @@ -3600,17 +4046,22 @@ void TestAPI(void) CFE_UtAssert_PRINTF(UT_OSP_MESSAGES[UT_OSP_CORE_APP_EXIT]); UtAssert_UINT32_EQ(UtAppRecPtr->ControlReq.AppControlRequest, CFE_ES_RunStatus_APP_ERROR); + /* Exit app with undefined exit status and not a core app */ + ES_ResetUnitTest(); + ES_UT_SetupSingleAppId(CFE_ES_AppType_CORE, CFE_ES_AppState_STOPPED, "UT", &UtAppRecPtr, NULL); + UtAppRecPtr->ControlReq.AppControlRequest = CFE_ES_RunStatus_APP_RUN; + CFE_ES_ExitApp(CFE_ES_RunStatus_UNDEFINED); + CFE_UtAssert_PRINTF(UT_OSP_MESSAGES[UT_OSP_CORE_APP_EXIT]); + UtAssert_UINT32_EQ(UtAppRecPtr->ControlReq.AppControlRequest, CFE_ES_RunStatus_APP_ERROR); + #if 0 - /* Can't cover this path since it contains a while(1) (i.e., - * infinite) loop - */ - OS_TaskCreate(&TestObjId, "UT", NULL, NULL, 0, 0, 0); - Id = ES_UT_OSALID_TO_ARRAYIDX(TestObjId); - CFE_ES_TaskRecordSetUsed(TaskRecPtr); - TaskRecPtr->AppId = Id; - AppRecPtr->Type = CFE_ES_AppType_EXTERNAL; - AppRecPtr->AppState = CFE_ES_AppState_RUNNING; - CFE_ES_ExitApp(CFE_ES_RunStatus_CORE_APP_RUNTIME_ERROR); + /* Can't cover EXTERNAL CFE_ES_ExitApp since it contains a while(1) (infinte loop) */ + ES_ResetUnitTest(); + ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_STOPPED, "UT", &UtAppRecPtr, NULL); + UtAppRecPtr->ControlReq.AppControlRequest = CFE_ES_RunStatus_APP_RUN; + CFE_ES_ExitApp(CFE_ES_RunStatus_APP_EXIT); + CFE_UtAssert_PRINTF(UT_OSP_MESSAGES[UT_OSP_EXTERNAL_APP_EXIT]); + UtAssert_UINT32_EQ(UtAppRecPtr->ControlReq.AppControlRequest, CFE_ES_RunStatus_APP_EXIT); #endif /* Test successful run loop app run request */ @@ -3652,8 +4103,8 @@ void TestAPI(void) /* Test run loop with a NULL run status */ ES_ResetUnitTest(); ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, NULL, &UtAppRecPtr, NULL); - UtAppRecPtr->ControlReq.AppControlRequest = CFE_ES_RunStatus_APP_RUN; - UtAssert_BOOL_TRUE(CFE_ES_RunLoop(NULL)); + UtAppRecPtr->ControlReq.AppControlRequest = CFE_ES_RunStatus_APP_EXIT; + UtAssert_BOOL_FALSE(CFE_ES_RunLoop(NULL)); /* Test run loop with startup sync code */ ES_ResetUnitTest(); @@ -3663,12 +4114,20 @@ void TestAPI(void) UtAssert_BOOL_TRUE(CFE_ES_RunLoop(&RunStatus)); UtAssert_UINT32_EQ(UtAppRecPtr->AppState, CFE_ES_AppState_RUNNING); + /* Hit NULL TaskRecPtr case */ + ES_ResetUnitTest(); + UT_SetDeferredRetcode(UT_KEY(OS_ObjectIdToArrayIndex), 1, OS_ERROR); + UtAssert_VOIDCALL(CFE_ES_IncrementTaskCounter()); + /* Test getting the cFE application and task ID by context */ ES_ResetUnitTest(); ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, "UT", NULL, NULL); CFE_UtAssert_SUCCESS(CFE_ES_GetAppID(&AppId)); CFE_UtAssert_SUCCESS(CFE_ES_GetTaskID(&TaskId)); + /* Convert task ID to index with NULL index */ + UtAssert_INT32_EQ(CFE_ES_TaskID_ToIndex(TaskId, NULL), CFE_ES_BAD_ARGUMENT); + /* Test CFE_ES_GetAppID error with null pointer parameter */ ES_ResetUnitTest(); UtAssert_INT32_EQ(CFE_ES_GetAppID(NULL), CFE_ES_BAD_ARGUMENT); @@ -3699,6 +4158,10 @@ void TestAPI(void) AppId = CFE_ES_AppRecordGetID(UtAppRecPtr); CFE_UtAssert_SUCCESS(CFE_ES_GetAppName(AppName, AppId, sizeof(AppName))); + /* Bad arguement calls */ + UtAssert_INT32_EQ(CFE_ES_GetAppName(NULL, AppId, sizeof(AppName)), CFE_ES_BAD_ARGUMENT); + UtAssert_INT32_EQ(CFE_ES_GetAppName(AppName, AppId, 0), CFE_ES_BAD_ARGUMENT); + /* Test getting task information using the task ID - NULL buffer */ ES_ResetUnitTest(); ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, NULL, &UtAppRecPtr, &UtTaskRecPtr); @@ -3805,6 +4268,14 @@ void TestAPI(void) CFE_ES_TaskEntryPoint(); UtAssert_STUB_COUNT(ES_UT_TaskFunction, 1); + /* Case where not fully set up */ + UtTaskRecPtr->AppId = CFE_ES_APPID_UNDEFINED; + CFE_ES_TaskEntryPoint(); + UtAssert_STUB_COUNT(ES_UT_TaskFunction, 1); + + /* NULL pointer protection logic coverage */ + UtAssert_INT32_EQ(CFE_ES_GetTaskFunction(NULL), CFE_ES_ERR_APP_REGISTER); + /* Test deleting a child task when task is not active/valid */ ES_ResetUnitTest(); ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, "UT", NULL, &UtTaskRecPtr); @@ -3867,6 +4338,15 @@ void TestAPI(void) /* Verify requirement to report error */ CFE_UtAssert_PRINTF(UT_OSP_MESSAGES[UT_OSP_CANNOT_CALL_APP_MAIN]); + /* Test with mismatched AppId */ + ES_ResetUnitTest(); + ES_UT_SetupSingleAppId(CFE_ES_AppType_EXTERNAL, CFE_ES_AppState_RUNNING, NULL, &UtAppRecPtr, NULL); + ES_UT_SetupChildTaskId(UtAppRecPtr, NULL, &UtTaskRecPtr); + TestObjId = CFE_ES_TaskId_ToOSAL(CFE_ES_TaskRecordGetID(UtTaskRecPtr)); /* Set context to that of child */ + UtAppRecPtr->AppId = CFE_ES_APPID_UNDEFINED; + CFE_ES_ExitChildTask(); + CFE_UtAssert_PRINTF(UT_OSP_MESSAGES[UT_OSP_CANNOT_CALL_APP_MAIN]); + /* Test exiting a child task with an error retrieving the app ID */ ES_ResetUnitTest(); CFE_ES_ExitChildTask(); @@ -3897,12 +4377,6 @@ void TestAPI(void) ES_ResetUnitTest(); UtAssert_UINT32_EQ(CFE_ES_CalculateCRC(&Data, 12, 345353, CFE_MISSION_ES_CRC_16), 2688); - /* - * CRC memory read failure test case removed in #322 - - * deprecated CFE_PSP_MemRead8, now the FSW code does a direct read - * which has no failure path. - */ - /* Test calculating a CRC on a range of memory using CRC type 32 * NOTE: This capability is not currently implemented in cFE */ @@ -3914,6 +4388,11 @@ void TestAPI(void) ES_ResetUnitTest(); UtAssert_UINT32_EQ(CFE_ES_CalculateCRC(&Data, 12, 345353, -1), 0); + /* Test NULL and zero size */ + ES_ResetUnitTest(); + UtAssert_UINT32_EQ(CFE_ES_CalculateCRC(NULL, 12, 345353, CFE_MISSION_ES_CRC_16), 345353); + UtAssert_UINT32_EQ(CFE_ES_CalculateCRC(&Data, 0, 345353, CFE_MISSION_ES_CRC_16), 345353); + /* Test shared mutex take with a take error */ ES_ResetUnitTest(); ES_UT_SetupSingleAppId(CFE_ES_AppType_CORE, CFE_ES_AppState_RUNNING, "UT", NULL, NULL); @@ -3960,13 +4439,6 @@ void TestAPI(void) */ UtAssert_VOIDCALL(CFE_ES_WaitForStartupSync(99)); - /* Test adding a time-stamped message to the system log using an invalid - * log mode - * - * TEST CASE REMOVED as the invalid log mode follow the same path as Discard, - * this test case added nothing new - */ - /* Test successfully adding a time-stamped message to the system log that * causes the log index to be reset */ @@ -3986,6 +4458,27 @@ void TestAPI(void) CFE_UtAssert_SUCCESS(CFE_ES_WriteToSysLog("SysLogText")); UtAssert_UINT32_LTEQ(CFE_ES_Global.ResetDataPtr->SystemLogWriteIdx, CFE_PLATFORM_ES_SYSTEM_LOG_SIZE - 1); + /* Test NULL spec string */ + ES_ResetUnitTest(); + UtAssert_INT32_EQ(CFE_ES_WriteToSysLog(NULL), CFE_ES_BAD_ARGUMENT); + + /* Invalid buffer size to CFE_ES_SysLog_vsnprintf */ + ES_ResetUnitTest(); + memset(SysLogBuf, 0, sizeof(SysLogBuf)); + UtAssert_VOIDCALL(ES_UT_SysLog_snprintf(SysLogBuf, 0, "b")); + UtAssert_ZERO(strlen(SysLogBuf)); + + /* Fill buffer with time call for branch coverage */ + ES_ResetUnitTest(); + memset(SysLogBuf, 0, sizeof(SysLogBuf)); + SysLogBufSize = sizeof(SysLogBuf); + UT_SetHandlerFunction(UT_KEY(CFE_TIME_Print), ES_UT_FillBuffer, &SysLogBufSize); + UtAssert_VOIDCALL(ES_UT_SysLog_snprintf(SysLogBuf, sizeof(SysLogBuf), "b")); + + /* Force a vsnprintf failure */ + ES_ResetUnitTest(); + UtAssert_VOIDCALL(ES_UT_SysLog_snprintf(SysLogBuf, sizeof(SysLogBuf), NULL)); + /* Test run loop with an application error status */ ES_ResetUnitTest(); ES_UT_SetupSingleAppId(CFE_ES_AppType_CORE, CFE_ES_AppState_RUNNING, "UT", &UtAppRecPtr, NULL); @@ -4003,19 +4496,27 @@ void TestAPI(void) UtAssert_INT32_EQ(CFE_ES_GetTaskName(AppName, CFE_ES_TASKID_UNDEFINED, sizeof(AppName)), CFE_ES_ERR_RESOURCEID_NOT_VALID); UtAssert_INT32_EQ(CFE_ES_GetTaskName(NULL, TaskId, sizeof(AppName)), CFE_ES_BAD_ARGUMENT); + UtAssert_INT32_EQ(CFE_ES_GetTaskName(AppName, TaskId, 0), CFE_ES_BAD_ARGUMENT); CFE_UtAssert_SUCCESS(CFE_ES_GetTaskName(AppName, TaskId, sizeof(AppName))); UT_SetDeferredRetcode(UT_KEY(OS_GetResourceName), 1, OS_ERROR); UtAssert_INT32_EQ(CFE_ES_GetTaskName(AppName, TaskId, sizeof(AppName)), CFE_ES_ERR_RESOURCEID_NOT_VALID); + UtAssert_INT32_EQ(CFE_ES_GetTaskID(NULL), CFE_ES_BAD_ARGUMENT); UtAssert_INT32_EQ(CFE_ES_GetTaskIDByName(&TaskId, NULL), CFE_ES_BAD_ARGUMENT); + UtAssert_INT32_EQ(CFE_ES_GetTaskIDByName(NULL, "NotNULL"), CFE_ES_BAD_ARGUMENT); CFE_UtAssert_SUCCESS(CFE_ES_GetTaskIDByName(&TaskId, AppName)); UT_SetDeferredRetcode(UT_KEY(OS_TaskGetIdByName), 1, OS_ERROR); UtAssert_INT32_EQ(CFE_ES_GetTaskIDByName(&TaskId, "Nonexistent"), CFE_ES_ERR_NAME_NOT_FOUND); + + /* Hit error case for NULL TaskRecPtr */ + ES_ResetUnitTest(); + UT_SetDeferredRetcode(UT_KEY(OS_TaskGetId), 1, OS_OBJECT_ID_UNDEFINED); + UtAssert_INT32_EQ(CFE_ES_GetTaskID(&TaskId), CFE_ES_ERR_RESOURCEID_NOT_VALID); } void TestGenericCounterAPI(void) { - char CounterName[11]; + char CounterName[OS_MAX_API_NAME + 1]; CFE_ES_CounterId_t CounterId; CFE_ES_CounterId_t CounterId2; uint32 CounterCount; @@ -4051,6 +4552,7 @@ void TestGenericCounterAPI(void) CFE_ES_Global.CounterTable[2].CounterId = CFE_ES_COUNTERID_UNDEFINED; UtAssert_BOOL_TRUE(CFE_ES_CheckCounterIdSlotUsed(ES_UT_MakeCounterIdForIndex(1))); UtAssert_BOOL_FALSE(CFE_ES_CheckCounterIdSlotUsed(ES_UT_MakeCounterIdForIndex(2))); + UtAssert_BOOL_TRUE(CFE_ES_CheckCounterIdSlotUsed(CFE_RESOURCEID_UNDEFINED)); /* Test getting a registered generic counter that doesn't exist */ UtAssert_INT32_EQ(CFE_ES_GetGenCounterIDByName(&CounterId, "Counter999"), CFE_ES_ERR_NAME_NOT_FOUND); @@ -4091,15 +4593,23 @@ void TestGenericCounterAPI(void) CFE_ES_GetGenCount(CounterId, &CounterCount); UtAssert_INT32_EQ(CounterCount, 5); + /* Test getting a generic (valid) counter where the count is null */ + UtAssert_INT32_EQ(CFE_ES_GetGenCount(CounterId, NULL), CFE_ES_BAD_ARGUMENT); + /* Test registering a generic counter with a null counter ID pointer */ ES_ResetUnitTest(); UtAssert_INT32_EQ(CFE_ES_RegisterGenCounter(NULL, "Counter1"), CFE_ES_BAD_ARGUMENT); /* Test registering a generic counter with a null counter name */ ES_ResetUnitTest(); - UtAssert_INT32_EQ(CFE_ES_RegisterGenCounter(&CounterId, NULL), CFE_ES_BAD_ARGUMENT); + /* Register a generic counter with a name that is too long */ + ES_ResetUnitTest(); + memset(CounterName, 'a', sizeof(CounterName) - 1); + CounterName[sizeof(CounterName) - 1] = 0; + UtAssert_INT32_EQ(CFE_ES_RegisterGenCounter(&CounterId, CounterName), CFE_ES_BAD_ARGUMENT); + /* Test incrementing a generic counter where the record is not in use */ ES_ResetUnitTest(); UtAssert_INT32_EQ(CFE_ES_IncrementGenCounter(CounterId), CFE_ES_BAD_ARGUMENT); @@ -4112,9 +4622,9 @@ void TestGenericCounterAPI(void) ES_ResetUnitTest(); UtAssert_INT32_EQ(CFE_ES_GetGenCount(CounterId, &CounterCount), CFE_ES_BAD_ARGUMENT); - /* Test getting a generic counter where the count is null */ + /* Test deleting a generic counter where the record is not in use */ ES_ResetUnitTest(); - UtAssert_INT32_EQ(CFE_ES_GetGenCount(CounterId, NULL), CFE_ES_BAD_ARGUMENT); + UtAssert_INT32_EQ(CFE_ES_DeleteGenCounter(CounterId), CFE_ES_BAD_ARGUMENT); /* Test getting a registered generic counter ID using a null counter * pointer @@ -4134,6 +4644,7 @@ void TestGenericCounterAPI(void) UtAssert_INT32_EQ(CFE_ES_GetGenCounterName(CounterName, CFE_ES_COUNTERID_UNDEFINED, sizeof(CounterName)), CFE_ES_ERR_RESOURCEID_NOT_VALID); UtAssert_INT32_EQ(CFE_ES_GetGenCounterName(NULL, CounterId, sizeof(CounterName)), CFE_ES_BAD_ARGUMENT); + UtAssert_INT32_EQ(CFE_ES_GetGenCounterName(CounterName, CounterId, 0), CFE_ES_BAD_ARGUMENT); UtAssert_INT32_EQ(CFE_ES_GetGenCounterIDByName(&CounterId, NULL), CFE_ES_BAD_ARGUMENT); } @@ -4168,9 +4679,19 @@ void TestCDS() /* Test the CDS Cache Fetch/Flush/Load routine error cases */ ES_ResetUnitTest(); UtAssert_INT32_EQ(CFE_ES_CDS_CacheFetch(&CFE_ES_Global.CDSVars.Cache, 4, 0), CFE_ES_CDS_INVALID_SIZE); + UtAssert_INT32_EQ( + CFE_ES_CDS_CacheFetch(&CFE_ES_Global.CDSVars.Cache, 4, sizeof(CFE_ES_Global.CDSVars.Cache.Data) + 1), + CFE_ES_CDS_INVALID_SIZE); + UtAssert_INT32_EQ(CFE_ES_CDS_CacheFlush(&CFE_ES_Global.CDSVars.Cache), CFE_ES_CDS_INVALID_SIZE); + + /* Size too big */ + CFE_ES_Global.CDSVars.Cache.Size = sizeof(CFE_ES_Global.CDSVars.Cache.Data) + 1; UtAssert_INT32_EQ(CFE_ES_CDS_CacheFlush(&CFE_ES_Global.CDSVars.Cache), CFE_ES_CDS_INVALID_SIZE); UtAssert_INT32_EQ(CFE_ES_CDS_CachePreload(&CFE_ES_Global.CDSVars.Cache, NULL, 4, 0), CFE_ES_CDS_INVALID_SIZE); + UtAssert_INT32_EQ( + CFE_ES_CDS_CachePreload(&CFE_ES_Global.CDSVars.Cache, NULL, 4, sizeof(CFE_ES_Global.CDSVars.Cache.Data) + 1), + CFE_ES_CDS_INVALID_SIZE); TempSize = 5; CFE_UtAssert_SUCCESS(CFE_ES_CDS_CachePreload(&CFE_ES_Global.CDSVars.Cache, &TempSize, 4, 4)); @@ -4209,6 +4730,10 @@ void TestCDS() /* No reset here -- just attempt to register the same name again */ CFE_UtAssert_SUCCESS(CFE_ES_RegisterCDS(&CDSHandle, 6, "Name")); + /* Register a new size with a read CDS failure */ + UT_SetDeferredRetcode(UT_KEY(CFE_PSP_ReadFromCDS), 1, OS_ERROR); + UtAssert_INT32_EQ(CFE_ES_RegisterCDS(&CDSHandle, 8, "Name"), CFE_ES_CDS_ACCESS_ERROR); + /* Test CDS registering using a null name */ UtAssert_INT32_EQ(CFE_ES_RegisterCDS(&CDSHandle, 4, ""), CFE_ES_CDS_INVALID_NAME); @@ -4234,6 +4759,7 @@ void TestCDS() CFE_ES_Global.CDSVars.Registry[2].BlockID = CFE_ES_CDS_BAD_HANDLE; UtAssert_BOOL_TRUE(CFE_ES_CheckCDSHandleSlotUsed(ES_UT_MakeCDSIdForIndex(1))); UtAssert_BOOL_FALSE(CFE_ES_CheckCDSHandleSlotUsed(ES_UT_MakeCDSIdForIndex(2))); + UtAssert_BOOL_TRUE(CFE_ES_CheckCDSHandleSlotUsed(CFE_RESOURCEID_UNDEFINED)); /* Test CDS registering using a bad app ID */ ES_ResetUnitTest(); @@ -4253,9 +4779,15 @@ void TestCDS() CDSHandle = CFE_ES_CDSBlockRecordGetID(UtCDSRegRecPtr); CFE_UtAssert_SUCCESS(CFE_ES_CopyToCDS(CDSHandle, &BlockData)); + /* Copy to CDS with NULL */ + UtAssert_INT32_EQ(CFE_ES_CopyToCDS(CDSHandle, NULL), CFE_ES_BAD_ARGUMENT); + /* Test successfully restoring from a CDS */ CFE_UtAssert_SUCCESS(CFE_ES_RestoreFromCDS(&BlockData, CDSHandle)); + /* Restore from CDS with NULL */ + UtAssert_INT32_EQ(CFE_ES_RestoreFromCDS(NULL, CDSHandle), CFE_ES_BAD_ARGUMENT); + /* Test CDS registering using a name longer than the maximum allowed */ ES_ResetUnitTest(); ES_UT_SetupSingleAppId(CFE_ES_AppType_CORE, CFE_ES_AppState_RUNNING, "UT", NULL, NULL); @@ -4416,6 +4948,13 @@ void TestCDS() UT_SetDeferredRetcode(UT_KEY(CFE_PSP_ReadFromCDS), 3, OS_ERROR); CFE_UtAssert_SUCCESS(CFE_ES_CDS_EarlyInit()); + /* Fail writing to CDS during CFE_ES_ClearCDS for branch coverage */ + ES_ResetUnitTest(); + UT_SetDeferredRetcode(UT_KEY(CFE_PSP_ReadFromCDS), 3, OS_ERROR); + UT_SetDeferredRetcode(UT_KEY(CFE_PSP_WriteToCDS), 1, OS_ERROR); + UtAssert_INT32_EQ(CFE_ES_CDS_EarlyInit(), CFE_ES_CDS_ACCESS_ERROR); + UtAssert_STUB_COUNT(CFE_PSP_WriteToCDS, 1); + /* Test CDS initialization where initializing the CDS registry fails */ ES_ResetUnitTest(); UT_SetDeferredRetcode(UT_KEY(CFE_PSP_WriteToCDS), 1, OS_ERROR); @@ -4446,7 +4985,14 @@ void TestCDS() UtAssert_INT32_EQ(CFE_ES_GetCDSBlockName(CDSName, CFE_ES_CDS_BAD_HANDLE, sizeof(CDSName)), CFE_ES_ERR_RESOURCEID_NOT_VALID); UtAssert_INT32_EQ(CFE_ES_GetCDSBlockName(NULL, CDSHandle, sizeof(CDSName)), CFE_ES_BAD_ARGUMENT); + UtAssert_INT32_EQ(CFE_ES_GetCDSBlockName(CDSName, CDSHandle, 0), CFE_ES_BAD_ARGUMENT); UtAssert_INT32_EQ(CFE_ES_GetCDSBlockIDByName(&CDSHandle, NULL), CFE_ES_BAD_ARGUMENT); + UtAssert_INT32_EQ(CFE_ES_GetCDSBlockIDByName(NULL, "NotNULL"), CFE_ES_BAD_ARGUMENT); + + /* Try to get block with CDS unavailable */ + CFE_ES_Global.CDSIsAvailable = false; + UtAssert_INT32_EQ(CFE_ES_GetCDSBlockIDByName(&CDSHandle, "NotNULL"), CFE_ES_NOT_IMPLEMENTED); + UtAssert_INT32_EQ(CFE_ES_GetCDSBlockName(CDSName, CDSHandle, sizeof(CDSName)), CFE_ES_NOT_IMPLEMENTED); } /* End TestCDS */ @@ -4520,7 +5066,6 @@ void TestCDSMempool(void) --UtCdsRegRecPtr->BlockOffset; UtAssert_INT32_EQ(CFE_ES_CDSBlockWrite(BlockHandle, &Data), CFE_ES_POOL_BLOCK_INVALID); UtAssert_INT32_EQ(CFE_ES_CDSBlockRead(&Data, BlockHandle), CFE_ES_POOL_BLOCK_INVALID); - ++UtCdsRegRecPtr->BlockOffset; /* Corrupt/change the block size, should trigger invalid size error */ @@ -4556,6 +5101,15 @@ void TestCDSMempool(void) CdsPtr[UtCdsRegRecPtr->BlockOffset] ^= 0x02; /* Bit flip */ UtAssert_INT32_EQ(CFE_ES_CDSBlockRead(&Data, BlockHandle), CFE_ES_CDS_BLOCK_CRC_ERR); CdsPtr[UtCdsRegRecPtr->BlockOffset] ^= 0x02; /* Fix Bit */ + + /* Set up again with a CDS that is too small to get branch coverage */ + /* Test CDS block access */ + ES_ResetUnitTest(); + ES_UT_SetupCDSGlobal(ES_UT_CDS_SMALL_TEST_SIZE); + ES_UT_SetupSingleCDSRegistry("UT", sizeof(CFE_ES_CDS_BlockHeader_t) - 2, false, &UtCdsRegRecPtr); + BlockHandle = CFE_ES_CDSBlockRecordGetID(UtCdsRegRecPtr); + UtAssert_INT32_EQ(CFE_ES_CDSBlockWrite(BlockHandle, &Data), CFE_ES_CDS_INVALID_SIZE); + UtAssert_INT32_EQ(CFE_ES_CDSBlockRead(&Data, BlockHandle), CFE_ES_CDS_INVALID_SIZE); } void TestESMempool(void) @@ -4651,6 +5205,9 @@ void TestESMempool(void) */ UtAssert_INT32_EQ(CFE_ES_GetMemPoolStats(&Stats, CFE_ES_MEMHANDLE_UNDEFINED), CFE_ES_ERR_RESOURCEID_NOT_VALID); + /* NULL pointer protection */ + UtAssert_INT32_EQ(CFE_ES_GetMemPoolStats(NULL, PoolID2), CFE_ES_BAD_ARGUMENT); + /* Test successfully getting memory pool statistics */ CFE_UtAssert_SUCCESS(CFE_ES_GetMemPoolStats(&Stats, PoolID1)); @@ -4672,6 +5229,15 @@ void TestESMempool(void) UtAssert_INT32_EQ(CFE_ES_PutPoolBuf(PoolID2, CFE_ES_MEMPOOLBUF_C((cpuaddr)addressp2 - 40)), CFE_ES_BUFFER_NOT_IN_POOL); + /* Allocate a buffer, corrupt retrieve function and put to get path coverage */ + UtAssert_INT32_EQ(CFE_ES_GetPoolBuf(&addressp2, PoolID2, 256), 256); + PoolPtr->Pool.Retrieve = ES_UT_PoolRetrieveFail; + UtAssert_INT32_EQ(CFE_ES_PutPoolBuf(PoolID2, addressp2), CFE_ES_CDS_ACCESS_ERROR); + + /* Validate handle with a corrupt pool */ + PoolPtr->Pool.PoolTotalSize = 0; + UtAssert_BOOL_FALSE(CFE_ES_ValidateHandle(PoolID2)); + /* Test initializing a pre-allocated pool specifying a number of block * sizes greater than the maximum */ @@ -4701,6 +5267,8 @@ void TestESMempool(void) * Test to use default block sizes if none are given */ CFE_UtAssert_SUCCESS(CFE_ES_PoolCreateEx(&PoolID1, Buffer1, sizeof(Buffer1), 0, NULL, CFE_ES_USE_MUTEX)); + UtAssert_INT32_EQ(CFE_ES_PoolCreateEx(&PoolID1, Buffer1, sizeof(Buffer1), 1, NULL, CFE_ES_USE_MUTEX), + CFE_ES_BAD_ARGUMENT); /* * Test creating a memory pool after the limit reached (no slots) @@ -4716,6 +5284,7 @@ void TestESMempool(void) CFE_ES_Global.MemPoolTable[2].PoolID = CFE_ES_MEMHANDLE_UNDEFINED; UtAssert_BOOL_TRUE(CFE_ES_CheckMemPoolSlotUsed(ES_UT_MakePoolIdForIndex(1))); UtAssert_BOOL_FALSE(CFE_ES_CheckMemPoolSlotUsed(ES_UT_MakePoolIdForIndex(2))); + UtAssert_BOOL_TRUE(CFE_ES_CheckMemPoolSlotUsed(CFE_RESOURCEID_UNDEFINED)); /* * Test creating a memory pool with a semaphore error @@ -4869,8 +5438,12 @@ void TestESMempool(void) /* Verify requirement to report error */ CFE_UtAssert_PRINTF(UT_OSP_MESSAGES[UT_OSP_GETPOOL_BAD_HANDLE]); - /* Test getting the size of an existing pool buffer using a null handle */ + /* NULL protection */ + UtAssert_INT32_EQ(CFE_ES_GetPoolBuf(NULL, PoolID1, 256), CFE_ES_BAD_ARGUMENT); + + /* Test getting the size of an existing pool buffer using undefined handle, NULL buff */ UtAssert_INT32_EQ(CFE_ES_GetPoolBufInfo(CFE_ES_MEMHANDLE_UNDEFINED, addressp1), CFE_ES_ERR_RESOURCEID_NOT_VALID); + UtAssert_INT32_EQ(CFE_ES_GetPoolBufInfo(PoolID1, NULL), CFE_ES_BAD_ARGUMENT); /* Test initializing a pre-allocated pool specifying a small block size */ ES_ResetUnitTest(); @@ -4911,8 +5484,9 @@ void TestESMempool(void) UtAssert_INT32_EQ(CFE_ES_GetPoolBufInfo(PoolID1, CFE_ES_MEMPOOLBUF_C((cpuaddr)addressp1 + 400)), CFE_ES_BUFFER_NOT_IN_POOL); - /* Test getting the size of a pool buffer with an invalid memory handle */ + /* Test getting the size of a pool buffer with an invalid memory handle, NULL buffer */ UtAssert_INT32_EQ(CFE_ES_PutPoolBuf(CFE_ES_MEMHANDLE_UNDEFINED, addressp1), CFE_ES_ERR_RESOURCEID_NOT_VALID); + UtAssert_INT32_EQ(CFE_ES_PutPoolBuf(PoolID1, NULL), CFE_ES_BAD_ARGUMENT); } /* Tests to fill gaps in coverage in SysLog */ @@ -5024,8 +5598,9 @@ void TestBackground(void) memset(&CFE_ES_Global.BackgroundPerfDumpState, 0, sizeof(CFE_ES_Global.BackgroundPerfDumpState)); UT_SetDefaultReturnValue(UT_KEY(OS_write), -10); CFE_ES_Global.BackgroundPerfDumpState.CurrentState = CFE_ES_PerfDumpState_INIT; - UT_SetDeferredRetcode(UT_KEY(OS_BinSemTimedWait), 3, -4); - CFE_ES_BackgroundTask(); + UT_SetDeferredRetcode(UT_KEY(OS_BinSemTimedWait), 2, OS_SEM_TIMEOUT); + UT_SetDeferredRetcode(UT_KEY(OS_BinSemTimedWait), 1, -4); + UtAssert_VOIDCALL(CFE_ES_BackgroundTask()); CFE_UtAssert_PRINTF(UT_OSP_MESSAGES[UT_OSP_BACKGROUND_TAKE]); /* The number of jobs running should be 1 (perf log dump) */ From a4a5bdc6edd8774bf39aba386b062c0ae8cd0a6e Mon Sep 17 00:00:00 2001 From: Jacob Hageman Date: Tue, 7 Sep 2021 18:23:38 +0000 Subject: [PATCH 4/7] Fix #1906, Enforce minimum code coverage --- .github/workflows/code-coverage.yml | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/.github/workflows/code-coverage.yml b/.github/workflows/code-coverage.yml index 533c43c63..6fc8ddb73 100644 --- a/.github/workflows/code-coverage.yml +++ b/.github/workflows/code-coverage.yml @@ -94,4 +94,21 @@ jobs: run: | lcov --capture --rc lcov_branch_coverage=1 --directory build --output-file coverage_test.info lcov --rc lcov_branch_coverage=1 --add-tracefile coverage_base.info --add-tracefile coverage_test.info --output-file coverage_total.info - genhtml coverage_total.info --branch-coverage --output-directory lcov + genhtml coverage_total.info --branch-coverage --output-directory lcov | tee lcov_out.txt + + - name: Confirm Minimum Coverage + run: | + missed_branches=76 + missed_lines=33 + branch_nums=$(grep -A 3 "Overall coverage rate" lcov_out.txt | grep branches | grep -oP "[0-9]+[0-9]*") + line_nums=$(grep -A 3 "Overall coverage rate" lcov_out.txt | grep lines | grep -oP "[0-9]+[0-9]*") + + branch_diff=$(echo $branch_nums | awk '{ print $4 - $3 }') + line_diff=$(echo $line_nums | awk '{ print $4 - $3 }') + if [ $branch_diff -gt $missed_branches ] || [ $line_diff -gt $missed_lines ] + then + grep -A 3 "Overall coverage rate" lcov_out.txt + echo "$branch_diff branches missed, $missed_branches allowed" + echo "$line_diff lines missed, $missed_lines allowed" + exit -1 + fi From 134c97de2093ac006cd17ab95c373a65c4359ef5 Mon Sep 17 00:00:00 2001 From: Jacob Hageman Date: Tue, 7 Sep 2021 23:37:54 +0000 Subject: [PATCH 5/7] Fix #800 #961, Update dev guide for MSG and SBR --- docs/cFE Application Developers Guide.md | 102 ++++++++++++++--------- 1 file changed, 61 insertions(+), 41 deletions(-) diff --git a/docs/cFE Application Developers Guide.md b/docs/cFE Application Developers Guide.md index 565284f5d..0bdeae508 100644 --- a/docs/cFE Application Developers Guide.md +++ b/docs/cFE Application Developers Guide.md @@ -1389,29 +1389,35 @@ with timeout as well. ### 6.1.1 Software Bus Messages -A Software Bus Message (SB Message) is a collection of data treated as a -single entity. The format and the definition of the content is uniquely -identified with a 16 bit Message ID. The Message ID is used to identify -what the data is and who would like to receive it. Applications create -SB Messages by allocating sufficient memory, calling the SB API to -initialize the contents of the SB Message and then storing any -appropriate data into the structure. - -The Message API hides the details of the message structure, -providing routines such as CFE_MSG_GetMsgTime and CFE_MSG_SetMsgTime -in order to get and set a message time. The current version of the cFE -supports only CCSDS, however, the implementation of the message -structure can be changed without affecting cFS Applications. - -See the implementation documentation for specific formats, -fields, and bit values. The message ID (MsgId) is an abstract -concept that is implementation depended, used for routing messages -on the Software Bus. Depending on the implementation, different -ranges and values are supported, and the values effect the message -header differently. +A Software Bus Message is a collection of data treated as a single entity. +Messages are identified and routed on the Software Bus using an abstracted +Message ID. Applications create SB Messages by allocating sufficient memory, +initializing the message contents and filling in user data. -If you are using the default, MsgID maps directly to the CCSDS Stream ID. -When using the default, for commands use 0x18xx and telemetry use 0x08xx +The Message API abstracts the details of the message header, +and most importantly the Message ID. The current version of the cFE +supports only CCSDS, however, the implementation of the message +structure can be changed without affecting the rest of cFS as long +as the APIs meet the required behavior identified in the related +documentation. + +See the message module implementation documentation for specific formats, +fields, and bit values. The message module provides a selection of two +different implementations for Message ID (MISSION_MSG_V1 and MISSION_MSG_V2), +which use different header information to interpret the Message ID. +Applications and cFE services should always use the message module APIs +for getting or setting information in the message headers to support +portability between formats. Message ID should always be treated as opaque, +although they do need to be defined for applications to subscribe to messages. +Message ID definition is typically managed by external database management +systems and MUST match the implementation selected. + +If you are using the default (MISSION_MSG_V1), MsgID maps directly to the CCSDS Stream ID. +It is important enough to repeat, applications should NOT directly interpret +the Message ID value since for different implementations the bits may have +different meanings. For example, default Message ID values for commands are of +the format 0x18xx and telemetry is 0x08xx, whereas for MISSION_MSG_V2 +those bits have different meaning. ### 6.1.2 Pipes @@ -1458,6 +1464,21 @@ performs the operations necessary to transfer the SB Message to the target pipe(s). Applications call the SB API to request specified SB Message IDs to be routed to their previously created pipes. +Note there are two routing implementations provide by the +Software Bus Routing (SBR) module. If the MISSION_MSGMAP_IMPLEMENTATION +is unset (the default) or set to DIRECT, a message map of size +CFE_PLATFORM_SB_HIGHEST_VALID_MSGID is used to relate Message ID to routes. +If set to HASH, a message map of size (4 * CFE_PLATFORM_SB_MAX_MSG_IDS) +is used and a hash is performed on Message IDs to relate to routes. Note +the impact on memory footprint can be significant, since +CFE_PLATFORM_SB_HIGHEST_VALID_MSGID is the maximum number of possible +Message IDs, whereas CFE_PLATFORM_SB_MAX_MSG_IDS is the maximum number of +routes supported (**used** Message IDs). Hash collisions are reported +during subscription and can be avoided by predetermining Message +IDs that won't collide. Note advanced users can replace SBR with a custom +routing implementation (possibly sorting or a smart hash) to adapt to unique +mission requirements/constraints. + #### 6.1.3.1 Sending Applications Any software application is capable of sending SB Messages. However, @@ -1579,7 +1600,7 @@ FILE: sample_msgids.h ... /* Define Message IDs */ -#define SAMPLE_CMDID_1 (0x0123) +#define SAMPLE_CMDID_1 (0x0123) /* CAUTION!!! This value depends on selected implementation */ ... ``` ```c @@ -1739,15 +1760,14 @@ for the Developer to have used the CFE_MSG_CommandHeader_t macro instead. The CFE_MSG_Init API call formats the Message Header -appropriately with the given SB Message ID, size and, in this case, -clears the data portion of the SB Message (CFE_SB_CLEAR_DATA). -Another option for the fourth parameter is CFE_SB_NO_CLEAR which -would have retained the contents of the data structure and only updated -the SB Message Header. +appropriately with the given Message ID, size and clears the rest +of the message. Note this call is implementation dependent, in that +bits in the Message ID may have additional meaning and may impact +actual header fields in different ways. -NOTE: SB Message IDs are defined in a separate header file from the rest +NOTE: Message IDs are defined in a separate header file from the rest of the Application's interface. This makes it much simpler to port the -Application to another mission where SB Message IDs may need to be +Application to another mission where Message IDs may need to be renumbered. ### 6.5.1 Message Header Types @@ -1799,7 +1819,7 @@ functions are only applicable to a specific header type. Additional information on modifying specific header types is provided in the following subsections. -| **SB Message Header Field** | **API for Modifying the Header Field** | +| **Message Header Field** | **API for Modifying the Header Field** | | ---------------------------:| --------------------------------------:| | Message ID | CFE_MSG_SetMsgId | | Total Message Length | CFE_MSG_SetSize | @@ -1845,7 +1865,7 @@ Applications are portable to future missions. The following table identifies the fields of the Message Header and the appropriate API for extracting that field from the header: -| **SB Message Header Field** | **API for Reading the Header Field** | +| **Message Header Field** | **API for Reading the Header Field** | |:----------------------------|:-------------------------------------| | Message ID | CFE_MSG_GetMsgId | | Message Time | CFE_MSG_GetTime | @@ -1896,7 +1916,7 @@ SAMPLE_AppData_t SAMPLE_AppData; /* Instantiate Task Data */ ## 6.7 Receiving Software Bus Messages -To receive a SB Message, an application calls CFE_SB_ReceiveBuffer. Since most +To receive a Message, an application calls CFE_SB_ReceiveBuffer. Since most applications are message-driven, this typically occurs in an application's main execution loop. An example of this is shown below. @@ -1938,7 +1958,7 @@ FILE: sample_app.c ``` In the above example, the Application will pend on the -SAMPLE_AppData.CmdPipe until an SB Message arrives. A pointer to the next SB +SAMPLE_AppData.CmdPipe until a Message arrives. A pointer to the next SB message in the Pipe will be returned in SBBufPtr. Alternatively, the Application could have chosen to pend with a timeout (by @@ -1946,12 +1966,12 @@ providing a numerical argument in place of CFE_SB_PEND_FOREVER) or to quickly poll the pipe to check for a message (by using CFE_SB_POLL in place of CFE_SB_PEND_FOREVER). -If a SB Message fails to arrive within the specified timeout period, the +If a Message fails to arrive within the specified timeout period, the cFE will return the CFE_SB_TIME_OUT status code. If the Pipe does not have any data present when the CFE_SB_ReceiveBuffer API is called, the cFE will return a CFE_SB_NO_MESSAGE status code. -After a message is received, the SB Message Header accessor functions (as +After a message is received, the Message Header accessor functions (as described in Section 6.5.3) should be used to identify the message so that the application can react to it appropriately. @@ -1980,7 +2000,7 @@ assume the SB Buffer pointer is accessible once the buffer has been sent. If an Application has called the `CFE_SB_AllocateMessageBuffer` API call and -then later determines that it is not going to send the SB Message, it +then later determines that it is not going to send the Message, it shall free the allocated buffer by calling the `CFE_SB_ReleaseMessageBuffer` API. @@ -1990,7 +2010,7 @@ An example of the "Zero Copy" protocol is shown below: FILE: app_msgids.h ... -#define SAMPLE_BIG_TLM_MID (0x0231) /* Define SB Message ID for SAMPLE’s Big Pkt */ +#define SAMPLE_BIG_TLM_MID (0x0231) /* Define Message ID for SAMPLE’s Big Pkt */ ... FILE: sample_app.h @@ -2033,7 +2053,7 @@ SAMPLE_AppData_t SAMPLE_AppData; /* Instantiate Task Data */ { ... /* - ** Get a SB Message block of memory and initialize it + ** Get a Message block of memory and initialize it */ SAMPLE_AppData.BigPktBuf = (SAMPLE_BigPkt_Buffer_t *)CFE_SB_AllocateMessageBuffer(sizeof(SAMPLE_BigPkt_t)); @@ -2045,7 +2065,7 @@ SAMPLE_AppData_t SAMPLE_AppData; /* Instantiate Task Data */ */ /* - ** Send SB Message after time tagging it with current time + ** Send Message after time tagging it with current time */ CFE_SB_TimeStampMsg(&SAMPLE_AppData.BigPktBuf->Pkt.TlmHeader.Msg); CFE_SB_TransmitBuffer(SAMPLE_AppData.BigPktBuf, BufferHandle, true); @@ -2062,7 +2082,7 @@ The following are recommended "best practices" for applications using SB. 2. Pipe depth and message limits are dependent on the entire software system. Consider both the receiving application and any sending application(s) when choosing those limits. -3. Applications shall always use AB API functions to read or manipulate the SB +3. Applications shall always use API functions to read or manipulate the Message Header. 4. Applications should maintain a command counter and a command error counter in housekeeping telemetry. From 17dc6569e2737e10e95070bef23357b09c4ff22e Mon Sep 17 00:00:00 2001 From: "Jose F. Martinez Pedraza" Date: Thu, 9 Sep 2021 16:24:50 -0400 Subject: [PATCH 6/7] Fix #1931 Support unimplemented features in MSG ft --- modules/cfe_testcase/src/msg_api_test.c | 45 +++++++++++++++------ modules/cfe_testcase/src/sb_sendrecv_test.c | 7 +++- 2 files changed, 38 insertions(+), 14 deletions(-) diff --git a/modules/cfe_testcase/src/msg_api_test.c b/modules/cfe_testcase/src/msg_api_test.c index 0690ef07a..e9ade9d69 100644 --- a/modules/cfe_testcase/src/msg_api_test.c +++ b/modules/cfe_testcase/src/msg_api_test.c @@ -184,6 +184,7 @@ void TestMsgHeaderSecondaryApi(void) CFE_TIME_SysTime_t msgTime; bool isValid = true; CFE_TIME_SysTime_t currentTime = {1000, 0xFFFF0000}; + CFE_Status_t status; memset(&cmd, 0, sizeof(cmd)); memset(&cmdTlm, 0xFF, sizeof(cmdTlm)); @@ -203,17 +204,25 @@ void TestMsgHeaderSecondaryApi(void) UtAssert_INT32_EQ(CFE_MSG_SetType(&cmd2.Msg, CFE_MSG_Type_Cmd), CFE_SUCCESS); /* test generate-checksum */ - UtAssert_INT32_EQ(CFE_MSG_GenerateChecksum(NULL), CFE_MSG_BAD_ARGUMENT); - UtAssert_INT32_EQ(CFE_MSG_GenerateChecksum(&cmdTlm.Msg), CFE_MSG_WRONG_MSG_TYPE); - UtAssert_INT32_EQ(CFE_MSG_ValidateChecksum(&cmdTlm.Msg, &isValid), CFE_MSG_WRONG_MSG_TYPE); - UtAssert_INT32_EQ(CFE_MSG_ValidateChecksum(NULL, &isValid), CFE_MSG_BAD_ARGUMENT); - UtAssert_INT32_EQ(CFE_MSG_ValidateChecksum(&cmdTlm.Msg, NULL), CFE_MSG_BAD_ARGUMENT); - - UtAssert_INT32_EQ(CFE_MSG_ValidateChecksum(&cmd.Msg, &isValid), CFE_SUCCESS); - UtAssert_True(!isValid, "Checksum isValid (%d) = false", isValid); - UtAssert_INT32_EQ(CFE_MSG_GenerateChecksum(&cmd.Msg), CFE_SUCCESS); - UtAssert_INT32_EQ(CFE_MSG_ValidateChecksum(&cmd.Msg, &isValid), CFE_SUCCESS); - UtAssert_True(isValid, "Checksum isValid (%d) = true", isValid); + status = CFE_MSG_GenerateChecksum(NULL); + if (status == CFE_MSG_NOT_IMPLEMENTED) + { + UtAssert_NA("CFE_MSG_GenerateChecksum not implemented"); + } + else + { + UtAssert_INT32_EQ(CFE_MSG_GenerateChecksum(NULL), CFE_MSG_BAD_ARGUMENT); + UtAssert_INT32_EQ(CFE_MSG_GenerateChecksum(&cmdTlm.Msg), CFE_MSG_WRONG_MSG_TYPE); + UtAssert_INT32_EQ(CFE_MSG_ValidateChecksum(&cmdTlm.Msg, &isValid), CFE_MSG_WRONG_MSG_TYPE); + UtAssert_INT32_EQ(CFE_MSG_ValidateChecksum(NULL, &isValid), CFE_MSG_BAD_ARGUMENT); + UtAssert_INT32_EQ(CFE_MSG_ValidateChecksum(&cmdTlm.Msg, NULL), CFE_MSG_BAD_ARGUMENT); + + UtAssert_INT32_EQ(CFE_MSG_ValidateChecksum(&cmd.Msg, &isValid), CFE_SUCCESS); + UtAssert_True(!isValid, "Checksum isValid (%d) = false", isValid); + UtAssert_INT32_EQ(CFE_MSG_GenerateChecksum(&cmd.Msg), CFE_SUCCESS); + UtAssert_INT32_EQ(CFE_MSG_ValidateChecksum(&cmd.Msg, &isValid), CFE_SUCCESS); + UtAssert_True(isValid, "Checksum isValid (%d) = true", isValid); + } /* test get/set-fcn-code */ UtAssert_INT32_EQ(CFE_MSG_SetFcnCode(NULL, 4), CFE_MSG_BAD_ARGUMENT); @@ -232,10 +241,20 @@ void TestMsgHeaderSecondaryApi(void) UtAssert_INT32_EQ(CFE_MSG_GetMsgTime(NULL, &msgTime), CFE_MSG_BAD_ARGUMENT); UtAssert_INT32_EQ(CFE_MSG_GetMsgTime(&cmd.Msg, NULL), CFE_MSG_BAD_ARGUMENT); - UtAssert_INT32_EQ(CFE_MSG_GetMsgTime(&cmd2.Msg, &msgTime), CFE_MSG_WRONG_MSG_TYPE); + + CFE_Assert_STATUS_STORE(CFE_MSG_GetMsgTime(&cmd2.Msg, &msgTime)); + if (!CFE_Assert_STATUS_MAY_BE(CFE_SUCCESS)) + { + CFE_Assert_STATUS_MUST_BE(CFE_MSG_WRONG_MSG_TYPE); + } UtAssert_INT32_EQ(CFE_MSG_SetMsgTime(NULL, currentTime), CFE_MSG_BAD_ARGUMENT); - UtAssert_INT32_EQ(CFE_MSG_SetMsgTime(&cmd2.Msg, currentTime), CFE_MSG_WRONG_MSG_TYPE); + + CFE_Assert_STATUS_STORE(CFE_MSG_SetMsgTime(&cmd2.Msg, currentTime)); + if (!CFE_Assert_STATUS_MAY_BE(CFE_SUCCESS)) + { + CFE_Assert_STATUS_MUST_BE(CFE_MSG_WRONG_MSG_TYPE); + } UtAssert_INT32_EQ(CFE_MSG_SetMsgTime(&cmd.Msg, currentTime), CFE_SUCCESS); UtAssert_INT32_EQ(CFE_MSG_GetMsgTime(&cmd.Msg, &msgTime), CFE_SUCCESS); diff --git a/modules/cfe_testcase/src/sb_sendrecv_test.c b/modules/cfe_testcase/src/sb_sendrecv_test.c index 2113c9f2d..2f2bb4457 100644 --- a/modules/cfe_testcase/src/sb_sendrecv_test.c +++ b/modules/cfe_testcase/src/sb_sendrecv_test.c @@ -122,7 +122,12 @@ void TestBasicTransmitRecv(void) /* Attempt to send a msg which does not have a valid msgid */ memset(&CFE_FT_BigMsg, 0xFF, sizeof(CFE_FT_BigMsg)); CFE_MSG_SetSize(&CFE_FT_BigMsg.Hdr, sizeof(CFE_MSG_Message_t) + 4); - UtAssert_INT32_EQ(CFE_SB_TransmitMsg(&CFE_FT_BigMsg.Hdr, true), CFE_SB_BAD_ARGUMENT); + + CFE_Assert_STATUS_STORE(CFE_SB_TransmitMsg(&CFE_FT_BigMsg.Hdr, true)); + if (!CFE_Assert_STATUS_MAY_BE(CFE_SUCCESS)) + { + CFE_Assert_STATUS_MUST_BE(CFE_SB_BAD_ARGUMENT); + } /* Attempt to send a msg which is too big */ CFE_MSG_SetSize(&CFE_FT_BigMsg.Hdr, sizeof(CFE_FT_BigMsg)); From 98f0cbab4ec026d4234be24276b49571d5cb7237 Mon Sep 17 00:00:00 2001 From: "Gerardo E. Cruz-Ortiz" <59618057+astrogeco@users.noreply.github.com> Date: Fri, 10 Sep 2021 10:06:11 -0400 Subject: [PATCH 7/7] IC:2021-09-07, Bump to v6.8.0-rc1+dev994 --- README.md | 10 ++++++++++ modules/core_api/fsw/inc/cfe_version.h | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ca8fc797a..493e59599 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,16 @@ The detailed cFE user's guide can be viewed at and + ### Development Build: v6.8.0-rc1+dev980 - Add SB API test cases diff --git a/modules/core_api/fsw/inc/cfe_version.h b/modules/core_api/fsw/inc/cfe_version.h index 6e6100cad..6c6b666f0 100644 --- a/modules/core_api/fsw/inc/cfe_version.h +++ b/modules/core_api/fsw/inc/cfe_version.h @@ -28,7 +28,7 @@ #define CFE_VERSION_H /* Development Build Macro Definitions */ -#define CFE_BUILD_NUMBER 980 /**< @brief Development: Number of development commits since baseline */ +#define CFE_BUILD_NUMBER 994 /**< @brief Development: Number of development commits since baseline */ #define CFE_BUILD_BASELINE "v6.8.0-rc1" /**< @brief Development: Reference git tag for build number */ /* Version Macro Definitions updated for official releases only */