Skip to content

Commit cc68853

Browse files
authored
alignment issue / tests
Signed-off-by: James Adkison <adkison.james@gmail.com>
1 parent 4f9ac91 commit cc68853

1 file changed

Lines changed: 17 additions & 11 deletions

File tree

src/tests/rmqamqp/rmqamqp_framer.t.cpp

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include <gmock/gmock.h>
2525
#include <gtest/gtest.h>
2626

27+
#include <bsl_cstring.h>
2728
#include <bsl_memory.h>
2829
#include <bsl_vector.h>
2930

@@ -115,6 +116,16 @@ class ContentEncodeTests : public ::testing::Test {
115116
rmqamqp::Framer framer;
116117
bsl::vector<rmqamqpt::Frame> frames;
117118
};
119+
120+
bdlb::BigEndianUint64 readBodySize(const rmqamqpt::Frame& frame)
121+
{
122+
bdlb::BigEndianUint64 val;
123+
bsl::memcpy(&val,
124+
frame.rawData() + rmqamqpt::Frame::frameHeaderSize() + 4,
125+
sizeof(val));
126+
return val;
127+
}
128+
118129
} // namespace
119130

120131
TEST(Framer, Heartbeat)
@@ -442,9 +453,8 @@ TEST_F(ContentEncodeTests, ZeroBodySizeDoesNotProduceBodyFrame)
442453
framer.makeFrames(&frames, 2, rmqamqp::Message(rmqt::Message()));
443454

444455
EXPECT_THAT(frames, SizeIs(1));
445-
EXPECT_TRUE(*reinterpret_cast<const bdlb::BigEndianUint64*>(
446-
frames[0].rawData() + rmqamqpt::Frame::frameHeaderSize() +
447-
4) == 0); // body size field inside content header frame
456+
EXPECT_TRUE(readBodySize(frames[0]) ==
457+
0); // body size field inside content header frame
448458
EXPECT_THAT(frames[0].payloadLength(),
449459
Eq(16)); // Content-header size with delivery mode
450460
}
@@ -457,10 +467,8 @@ TEST_F(ContentEncodeTests, SmallMessageIsEncodedInOneFrame)
457467
framer.makeFrames(&frames, 2u, theMessage);
458468

459469
EXPECT_THAT(frames, SizeIs(2));
460-
EXPECT_TRUE(
461-
*reinterpret_cast<const bdlb::BigEndianUint64*>(
462-
frames[0].rawData() + rmqamqpt::Frame::frameHeaderSize() + 4) ==
463-
messageBytes); // body size field inside content header frame
470+
EXPECT_TRUE(readBodySize(frames[0]) ==
471+
messageBytes); // body size field inside content header frame
464472
EXPECT_THAT(frames[0].payloadLength(),
465473
Eq(BYTES_HEADER_WITH_MESSAGEID_DELIVERY_MODE)); // header
466474
EXPECT_THAT(frames[1].payloadLength(), Eq(messageBytes)); // body frame
@@ -477,10 +485,8 @@ TEST_F(ContentEncodeTests, LargerMessageIsEncodedInTwoFrames)
477485
rmqamqp::Message(rmqt::Message(
478486
bsl::make_shared<bsl::vector<uint8_t> >(messageBytes))));
479487
EXPECT_THAT(frames, SizeIs(3));
480-
EXPECT_TRUE(
481-
*reinterpret_cast<const bdlb::BigEndianUint64*>(
482-
frames[0].rawData() + rmqamqpt::Frame::frameHeaderSize() + 4) ==
483-
messageBytes); // body size field inside content header frame
488+
EXPECT_TRUE(readBodySize(frames[0]) ==
489+
messageBytes); // body size field inside content header frame
484490
EXPECT_THAT(frames[0].payloadLength(),
485491
Eq(BYTES_HEADER_WITH_MESSAGEID_DELIVERY_MODE)); // header
486492
EXPECT_THAT(frames[1].payloadLength(), Eq(firstFrame)); // body frame 1

0 commit comments

Comments
 (0)