Skip to content

Commit

Permalink
Fix RemoteBuiltinEndpointHonoring blackbox test (#3787) (#3793)
Browse files Browse the repository at this point in the history
* Refs #19358. Only account for WLP heartbeats and acknacks.

Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

* Refs #19358. Change test expectations.

Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

* Refs #19358. Rename counters.

Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

* Refs #19358. Whitelist localhost to ensure only the two test participants communicate.

Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

---------

Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>
(cherry picked from commit d27ad9d)

Co-authored-by: Miguel Company <miguelcompany@eprosima.com>
  • Loading branch information
mergify[bot] and MiguelCompany authored Sep 9, 2023
1 parent 590d74b commit b46eeba
Showing 1 changed file with 56 additions and 16 deletions.
72 changes: 56 additions & 16 deletions test/blackbox/common/BlackboxTestsDiscovery.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1810,36 +1810,76 @@ TEST(Discovery, RemoteBuiltinEndpointHonoring)
auto reader_test_transport = std::make_shared<test_UDPv4TransportDescriptor>();
auto writer_test_transport = std::make_shared<test_UDPv4TransportDescriptor>();

uint32_t num_reader_heartbeat = 0;
uint32_t num_reader_acknack = 0;
uint32_t num_wlp_reader_heartbeat = 0;
uint32_t num_wlp_reader_acknack = 0;

reader_test_transport->drop_heartbeat_messages_filter_ = [&num_reader_heartbeat](CDRMessage_t&)
reader_test_transport->drop_heartbeat_messages_filter_ = [&num_wlp_reader_heartbeat](CDRMessage_t& msg)
{
num_reader_heartbeat++;
auto old_pos = msg.pos;
msg.pos += 4;
eprosima::fastrtps::rtps::EntityId_t writer_entity_id;
eprosima::fastrtps::rtps::CDRMessage::readEntityId(&msg, &writer_entity_id);
msg.pos = old_pos;

if (eprosima::fastrtps::rtps::c_EntityId_WriterLiveliness == writer_entity_id)
{
num_wlp_reader_heartbeat++;
}
return false;
};

reader_test_transport->drop_ack_nack_messages_filter_ = [&num_reader_acknack](CDRMessage_t&)
reader_test_transport->drop_ack_nack_messages_filter_ = [&num_wlp_reader_acknack](CDRMessage_t& msg)
{
num_reader_acknack++;
auto old_pos = msg.pos;
msg.pos += 4;
eprosima::fastrtps::rtps::EntityId_t writer_entity_id;
eprosima::fastrtps::rtps::CDRMessage::readEntityId(&msg, &writer_entity_id);
msg.pos = old_pos;

if (eprosima::fastrtps::rtps::c_EntityId_WriterLiveliness == writer_entity_id)
{
num_wlp_reader_acknack++;
}
return false;
};

uint32_t num_writer_heartbeat = 0;
uint32_t num_writer_acknack = 0;
reader_test_transport->interfaceWhiteList.push_back("127.0.0.1");

uint32_t num_wlp_writer_heartbeat = 0;
uint32_t num_wlp_writer_acknack = 0;

writer_test_transport->drop_heartbeat_messages_filter_ = [&num_writer_heartbeat](CDRMessage_t&)
writer_test_transport->drop_heartbeat_messages_filter_ = [&num_wlp_writer_heartbeat](CDRMessage_t& msg)
{
num_writer_heartbeat++;
auto old_pos = msg.pos;
msg.pos += 4;
eprosima::fastrtps::rtps::EntityId_t writer_entity_id;
eprosima::fastrtps::rtps::CDRMessage::readEntityId(&msg, &writer_entity_id);
msg.pos = old_pos;

if (eprosima::fastrtps::rtps::c_EntityId_WriterLiveliness == writer_entity_id)
{
num_wlp_writer_heartbeat++;
}
return false;
};

writer_test_transport->drop_ack_nack_messages_filter_ = [&num_writer_acknack](CDRMessage_t&)
writer_test_transport->drop_ack_nack_messages_filter_ = [&num_wlp_writer_acknack](CDRMessage_t& msg)
{
num_writer_acknack++;
auto old_pos = msg.pos;
msg.pos += 4;
eprosima::fastrtps::rtps::EntityId_t writer_entity_id;
eprosima::fastrtps::rtps::CDRMessage::readEntityId(&msg, &writer_entity_id);
msg.pos = old_pos;

if (eprosima::fastrtps::rtps::c_EntityId_WriterLiveliness == writer_entity_id)
{
num_wlp_writer_acknack++;
}
return false;
};

writer_test_transport->interfaceWhiteList.push_back("127.0.0.1");

reader.disable_builtin_transport().add_user_transport_to_pparams(reader_test_transport).
use_writer_liveliness_protocol(false);
writer.disable_builtin_transport().add_user_transport_to_pparams(writer_test_transport);
Expand All @@ -1856,10 +1896,10 @@ TEST(Discovery, RemoteBuiltinEndpointHonoring)

std::this_thread::sleep_for(std::chrono::seconds(5));

ASSERT_EQ(num_reader_heartbeat, 3u);
ASSERT_EQ(num_reader_acknack, 3u);
ASSERT_EQ(num_writer_heartbeat, 3u);
ASSERT_EQ(num_writer_acknack, 3u);
ASSERT_EQ(num_wlp_reader_heartbeat, 0u);
ASSERT_EQ(num_wlp_reader_acknack, 0u);
ASSERT_EQ(num_wlp_writer_heartbeat, 0u);
ASSERT_EQ(num_wlp_writer_acknack, 0u);
}

//! Regression test for redmine issue 10674
Expand Down

0 comments on commit b46eeba

Please sign in to comment.