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/fw-update/test/device_updater_test.cpp b/fw-update/test/device_updater_test.cpp
index ace5e2d..bd1d684 100644
--- a/fw-update/test/device_updater_test.cpp
+++ b/fw-update/test/device_updater_test.cpp
@@ -47,7 +47,7 @@
package.seekg(0);
std::vector<uint8_t> packageHeader(sizeof(pldm_package_header_information));
- package.read(reinterpret_cast<char*>(packageHeader.data()),
+ package.read(new (packageHeader.data()) char,
sizeof(pldm_package_header_information));
auto pkgHeaderInfo =
@@ -58,16 +58,14 @@
packageHeader.clear();
packageHeader.resize(pkgHeaderInfoSize);
package.seekg(0);
- package.read(reinterpret_cast<char*>(packageHeader.data()),
- pkgHeaderInfoSize);
+ package.read(new (packageHeader.data()) char, pkgHeaderInfoSize);
auto parser = parsePkgHeader(packageHeader);
EXPECT_NE(parser, nullptr);
package.seekg(0);
packageHeader.resize(parser->pkgHeaderSize);
- package.read(reinterpret_cast<char*>(packageHeader.data()),
- parser->pkgHeaderSize);
+ package.read(new (packageHeader.data()) char, parser->pkgHeaderSize);
parser->parse(packageHeader, packageSize);
const auto& fwDeviceIDRecords = parser->getFwDeviceIDRecords();