Skip to content

Commit

Permalink
Merge pull request #1950 from jphickey/fix-1949-update-testcase
Browse files Browse the repository at this point in the history
Fix #1949, update msgid testcase to match implementation
  • Loading branch information
astrogeco authored Sep 16, 2021
2 parents bb936ef + 587d1f2 commit 25426ed
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 1 deletion.
15 changes: 14 additions & 1 deletion modules/cfe_testcase/src/message_id_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,20 @@ void TestMsgId(void)
UtAssert_UINT32_EQ(msgid, expectedmsgid);

UtAssert_INT32_EQ(CFE_MSG_SetMsgId(NULL, msgid), CFE_MSG_BAD_ARGUMENT);
UtAssert_INT32_EQ(CFE_MSG_SetMsgId(&msg, CFE_SB_INVALID_MSG_ID), CFE_MSG_BAD_ARGUMENT);

/*
* The purpose of this test is to attempt to set a MsgId beyond the set of values that can
* be stored in the MSG header. However the criteria for being "storable" depends on the
* actual MSG implementation, and may be different in other implementations. Currently both
* "v1" and "v2" implementations do define a specific highest MsgId value, but another
* implementation might not have a highest number concept at all.
*
* By passing the value of -1, when converted to a an unsigned value (either 16 or 32 bit)
* it should translate to a MsgId value with all bits being set. In theory, at least some of
* those bits will be not mappable to the packet header bits, and it should therefore elicit
* the CFE_MSG_BAD_ARGUMENT response.
*/
UtAssert_INT32_EQ(CFE_MSG_SetMsgId(&msg, CFE_SB_ValueToMsgId(-1)), CFE_MSG_BAD_ARGUMENT);

UtAssert_INT32_EQ(CFE_MSG_GetMsgId(NULL, &msgid), CFE_MSG_BAD_ARGUMENT);
UtAssert_INT32_EQ(CFE_MSG_GetMsgId(&msg, NULL), CFE_MSG_BAD_ARGUMENT);
Expand Down
5 changes: 5 additions & 0 deletions modules/core_api/fsw/inc/cfe_msg.h
Original file line number Diff line number Diff line change
Expand Up @@ -670,6 +670,11 @@ CFE_Status_t CFE_MSG_GetMsgId(const CFE_MSG_Message_t *MsgPtr, CFE_SB_MsgId_t *M
* This API only sets the bits in the header that make up the message ID.
* No other values in the header are modified.
*
* The user should ensure that this function is only called with a valid
* MsgId parameter value. If called with an invalid value, the results
* are implementation-defined. The implementation may or may not return
* the error code #CFE_MSG_BAD_ARGUMENT in this case.
*
* \param[in, out] MsgPtr A pointer to the buffer that contains the message @nonnull.
* \param[in] MsgId Message id
*
Expand Down

0 comments on commit 25426ed

Please sign in to comment.