Skip to content

Commit

Permalink
Fix nasa#903, Add CFE_SB_GetUserData padding check
Browse files Browse the repository at this point in the history
  • Loading branch information
skliper committed Sep 23, 2020
1 parent 60917a2 commit 4eba3c0
Showing 1 changed file with 75 additions and 3 deletions.
78 changes: 75 additions & 3 deletions fsw/cfe-core/unit-test/sb_UT.c
Original file line number Diff line number Diff line change
Expand Up @@ -3674,19 +3674,91 @@ void Test_CFE_SB_MsgHdrSize(void)
void Test_CFE_SB_GetUserData(void)
{
CFE_SB_Msg_t msg;
uint8 *ExpAdrReturned;
uint8 *expected;
bool hassec;
CFE_MSG_Type_t type = CFE_MSG_Type_Invalid;
struct
{
CFE_SB_CmdHdr_t cmd;
uint8 payload;
} cmd_uint8;
struct
{
CFE_SB_CmdHdr_t cmd;
uint16 payload;
} cmd_uint16;
struct
{
CFE_SB_CmdHdr_t cmd;
uint32 payload;
} cmd_uint32;
struct
{
CFE_SB_CmdHdr_t cmd;
uint64 payload;
} cmd_uint64;
struct
{
CFE_SB_TlmHdr_t tlm;
uint8 payload;
} tlm_uint8;
struct
{
CFE_SB_TlmHdr_t tlm;
uint16 payload;
} tlm_uint16;
struct
{
CFE_SB_TlmHdr_t tlm;
uint32 payload;
} tlm_uint32;
struct
{
CFE_SB_TlmHdr_t tlm;
uint64 payload;
} tlm_uint64;



/* No secondary */
hassec = false;
UT_SetDataBuffer(UT_KEY(CFE_MSG_GetHasSecondaryHeader), &hassec, sizeof(hassec), false);
UT_SetDataBuffer(UT_KEY(CFE_MSG_GetType), &type, sizeof(type), false);

/* Expected return */
ExpAdrReturned = (uint8 *)&msg + sizeof(CCSDS_SpacePacket_t);
expected = (uint8 *)&msg + sizeof(CCSDS_SpacePacket_t);
UtAssert_ADDRESS_EQ(CFE_SB_GetUserData(&msg), expected);

/* Commands */
hassec = true;
type = CFE_MSG_Type_Cmd;
UT_SetDataBuffer(UT_KEY(CFE_MSG_GetHasSecondaryHeader), &hassec, sizeof(hassec), false);
UT_SetDataBuffer(UT_KEY(CFE_MSG_GetType), &type, sizeof(type), false);
UtAssert_ADDRESS_EQ(CFE_SB_GetUserData((CFE_SB_Msg_t*)&cmd_uint8), &(cmd_uint8.payload));
UT_SetDataBuffer(UT_KEY(CFE_MSG_GetHasSecondaryHeader), &hassec, sizeof(hassec), false);
UT_SetDataBuffer(UT_KEY(CFE_MSG_GetType), &type, sizeof(type), false);
UtAssert_ADDRESS_EQ(CFE_SB_GetUserData((CFE_SB_Msg_t*)&cmd_uint16), &(cmd_uint16.payload));
UT_SetDataBuffer(UT_KEY(CFE_MSG_GetHasSecondaryHeader), &hassec, sizeof(hassec), false);
UT_SetDataBuffer(UT_KEY(CFE_MSG_GetType), &type, sizeof(type), false);
UtAssert_ADDRESS_EQ(CFE_SB_GetUserData((CFE_SB_Msg_t*)&cmd_uint32), &(cmd_uint32.payload));
UT_SetDataBuffer(UT_KEY(CFE_MSG_GetHasSecondaryHeader), &hassec, sizeof(hassec), false);
UT_SetDataBuffer(UT_KEY(CFE_MSG_GetType), &type, sizeof(type), false);
UtAssert_ADDRESS_EQ(CFE_SB_GetUserData((CFE_SB_Msg_t*)&cmd_uint64), &(cmd_uint64.payload));

ASSERT_TRUE(CFE_SB_GetUserData(&msg) == ExpAdrReturned);
/* Telemetry */
type = CFE_MSG_Type_Tlm;
UT_SetDataBuffer(UT_KEY(CFE_MSG_GetHasSecondaryHeader), &hassec, sizeof(hassec), false);
UT_SetDataBuffer(UT_KEY(CFE_MSG_GetType), &type, sizeof(type), false);
UtAssert_ADDRESS_EQ(CFE_SB_GetUserData((CFE_SB_Msg_t*)&tlm_uint8), &(tlm_uint8.payload));
UT_SetDataBuffer(UT_KEY(CFE_MSG_GetHasSecondaryHeader), &hassec, sizeof(hassec), false);
UT_SetDataBuffer(UT_KEY(CFE_MSG_GetType), &type, sizeof(type), false);
UtAssert_ADDRESS_EQ(CFE_SB_GetUserData((CFE_SB_Msg_t*)&tlm_uint16), &(tlm_uint16.payload));
UT_SetDataBuffer(UT_KEY(CFE_MSG_GetHasSecondaryHeader), &hassec, sizeof(hassec), false);
UT_SetDataBuffer(UT_KEY(CFE_MSG_GetType), &type, sizeof(type), false);
UtAssert_ADDRESS_EQ(CFE_SB_GetUserData((CFE_SB_Msg_t*)&tlm_uint32), &(tlm_uint32.payload));
UT_SetDataBuffer(UT_KEY(CFE_MSG_GetHasSecondaryHeader), &hassec, sizeof(hassec), false);
UT_SetDataBuffer(UT_KEY(CFE_MSG_GetType), &type, sizeof(type), false);
UtAssert_ADDRESS_EQ(CFE_SB_GetUserData((CFE_SB_Msg_t*)&tlm_uint64), &(tlm_uint64.payload));

} /* end Test_CFE_SB_GetUserData */

Expand Down

0 comments on commit 4eba3c0

Please sign in to comment.