tests: Migrate to placement_new from reinterpret casting
reinterpret_cast is prohibited by the C++ core guidelines because
it takes the behavior outside the language definition and gives
problems with type safety. Placement-new on the other-hand allows
to control the object storage while still properly instantiating
an object,keeping the behavior inside the C++ language
specification.
Change-Id: Ifab9ea58b932db11d7af0b9def119bed1bfdc44d
Signed-off-by: Pavithra Barithaya <pavithrabarithaya07@gmail.com>
diff --git a/platform-mc/test/event_manager_test.cpp b/platform-mc/test/event_manager_test.cpp
index 4550b40..bb4706f 100644
--- a/platform-mc/test/event_manager_test.cpp
+++ b/platform-mc/test/event_manager_test.cpp
@@ -226,7 +226,7 @@
0x0 // dataTransferHandleTimeout
};
auto rc = terminusManager.enqueueResponse(
- reinterpret_cast<pldm_msg*>(getPDRRepositoryInfoResp.data()),
+ new (getPDRRepositoryInfoResp.data()) pldm_msg,
sizeof(getPDRRepositoryInfoResp));
EXPECT_EQ(rc, PLDM_SUCCESS);
@@ -300,8 +300,8 @@
0, // fatalHigh
0 // fatalLow
};
- rc = terminusManager.enqueueResponse(
- reinterpret_cast<pldm_msg*>(getPdrResp.data()), sizeof(getPdrResp));
+ rc = terminusManager.enqueueResponse(new (getPdrResp.data()) pldm_msg,
+ sizeof(getPdrResp));
EXPECT_EQ(rc, PLDM_SUCCESS);
const size_t getPdrAuxNameRespLen = 39;
@@ -336,8 +336,7 @@
0x00 // Entity Name "S0"
};
rc = terminusManager.enqueueResponse(
- reinterpret_cast<pldm_msg*>(getPdrAuxNameResp.data()),
- sizeof(getPdrAuxNameResp));
+ new (getPdrAuxNameResp.data()) pldm_msg, sizeof(getPdrAuxNameResp));
EXPECT_EQ(rc, PLDM_SUCCESS);
// queue eventMessageBufferSize response(bufferSize=32)
@@ -345,7 +344,7 @@
std::array<uint8_t, sizeof(pldm_msg_hdr) + eventMessageBufferSizeRespLen>
eventMessageBufferSizeResp{0x0, 0x02, 0x0d, PLDM_SUCCESS, 32, 0};
rc = terminusManager.enqueueResponse(
- reinterpret_cast<pldm_msg*>(eventMessageBufferSizeResp.data()),
+ new (eventMessageBufferSizeResp.data()) pldm_msg,
sizeof(eventMessageBufferSizeResp));
EXPECT_EQ(rc, PLDM_SUCCESS);
@@ -359,7 +358,7 @@
3, // numberEventClassReturned
0x0, 0x5, 0xfa};
rc = terminusManager.enqueueResponse(
- reinterpret_cast<pldm_msg*>(eventMessageSupportedResp.data()),
+ new (eventMessageSupportedResp.data()) pldm_msg,
sizeof(eventMessageSupportedResp));
EXPECT_EQ(rc, PLDM_SUCCESS);
@@ -372,7 +371,7 @@
std::array<uint8_t, sizeof(pldm_msg_hdr) + SetEventReceiverLen>
SetEventReceiverResp{0x0, 0x02, 0x04, PLDM_SUCCESS};
rc = terminusManager.enqueueResponse(
- reinterpret_cast<pldm_msg*>(SetEventReceiverResp.data()),
+ new (SetEventReceiverResp.data()) pldm_msg,
sizeof(SetEventReceiverResp));
EXPECT_EQ(rc, PLDM_SUCCESS);
@@ -439,7 +438,7 @@
4 // eventData first part
};
auto rc = terminusManager.enqueueResponse(
- reinterpret_cast<pldm_msg*>(pollForPlatformEventMessage1Resp.data()),
+ new (pollForPlatformEventMessage1Resp.data()) pldm_msg,
sizeof(pollForPlatformEventMessage1Resp));
EXPECT_EQ(rc, PLDM_SUCCESS);
@@ -476,7 +475,7 @@
0x5d // crc32
};
rc = terminusManager.enqueueResponse(
- reinterpret_cast<pldm_msg*>(pollForPlatformEventMessage2Resp.data()),
+ new (pollForPlatformEventMessage2Resp.data()) pldm_msg,
sizeof(pollForPlatformEventMessage2Resp));
EXPECT_EQ(rc, PLDM_SUCCESS);
@@ -489,7 +488,7 @@
0x0, 0x0 // eventID
};
rc = terminusManager.enqueueResponse(
- reinterpret_cast<pldm_msg*>(pollForPlatformEventMessage3Resp.data()),
+ new (pollForPlatformEventMessage3Resp.data()) pldm_msg,
sizeof(pollForPlatformEventMessage3Resp));
EXPECT_EQ(rc, PLDM_SUCCESS);