diff --git a/test/blackbox/common/BlackboxTestsDiscovery.cpp b/test/blackbox/common/BlackboxTestsDiscovery.cpp index 0bec190d67f..69f3f0b14d0 100644 --- a/test/blackbox/common/BlackboxTestsDiscovery.cpp +++ b/test/blackbox/common/BlackboxTestsDiscovery.cpp @@ -1810,36 +1810,76 @@ TEST(Discovery, RemoteBuiltinEndpointHonoring) auto reader_test_transport = std::make_shared(); auto writer_test_transport = std::make_shared(); - 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); @@ -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