Extend test for empty messages

This commit is contained in:
Alexey Rybalchenko 2021-07-13 23:01:56 +02:00 committed by Dennis Klein
parent 815b2f1d76
commit c57410b820

View File

@ -160,14 +160,22 @@ auto RunPushPullWithAlignment(string const& transport, string const& _address) -
ASSERT_EQ(pull.Receive(inMsg), size); ASSERT_EQ(pull.Receive(inMsg), size);
} }
for (auto const align : {Alignment{64}, Alignment{32}}) {
size_t const size25{25}; size_t const size25{25};
size_t const size50{50}; size_t const size50{50};
Alignment const align64{64};
auto msg(push.NewMessage(size25)); auto msg1(push.NewMessage(size25));
msg->Rebuild(size50, align); msg1->Rebuild(size50, align64);
ASSERT_TRUE(CheckMsgAlignment(*msg, align)); ASSERT_TRUE(CheckMsgAlignment(*msg1, align64));
}
Alignment const align32{32};
auto msg2(push.NewMessage(size25, align64));
msg2->Rebuild(size50, align32);
ASSERT_TRUE(CheckMsgAlignment(*msg2, align32));
auto msgCopy(push.NewMessage());
msgCopy->Copy(*msg2);
ASSERT_TRUE(CheckMsgAlignment(*msgCopy, align32));
} }
auto EmptyMessage(string const& transport, string const& _address) -> void auto EmptyMessage(string const& transport, string const& _address) -> void
@ -182,6 +190,8 @@ auto EmptyMessage(string const& transport, string const& _address) -> void
push.Bind(address); push.Bind(address);
pull.Connect(address); pull.Connect(address);
{
auto outMsg(push.NewMessage()); auto outMsg(push.NewMessage());
ASSERT_EQ(outMsg->GetData(), nullptr); ASSERT_EQ(outMsg->GetData(), nullptr);
ASSERT_EQ(push.Send(outMsg), 0); ASSERT_EQ(push.Send(outMsg), 0);
@ -191,6 +201,32 @@ auto EmptyMessage(string const& transport, string const& _address) -> void
ASSERT_EQ(inMsg->GetData(), nullptr); ASSERT_EQ(inMsg->GetData(), nullptr);
} }
{
auto outMsg(push.NewMessage(0));
ASSERT_EQ(outMsg->GetSize(), 0);
size_t const size100{100};
outMsg->Rebuild(size100);
ASSERT_EQ(outMsg->GetSize(), size100);
outMsg->Rebuild(0);
ASSERT_EQ(outMsg->GetSize(), 0);
auto msgCopy(push.NewMessage());
msgCopy->Copy(*outMsg);
ASSERT_EQ(msgCopy->GetSize(), 0);
ASSERT_EQ(push.Send(outMsg), 0);
ASSERT_EQ(push.Send(msgCopy), 0);
auto inMsg(pull.NewMessage());
auto inMsg2(pull.NewMessage());
ASSERT_EQ(pull.Receive(inMsg), 0);
ASSERT_EQ(pull.Receive(inMsg2), 0);
ASSERT_EQ(inMsg->GetSize(), 0);
ASSERT_EQ(inMsg2->GetSize(), 0);
}
}
TEST(Resize, zeromq) // NOLINT TEST(Resize, zeromq) // NOLINT
{ {
RunPushPullWithMsgResize("zeromq", "ipc://test_message_resize"); RunPushPullWithMsgResize("zeromq", "ipc://test_message_resize");