From 525c36d9b6d5fd3da8cf45cecce0432a26a804c6 Mon Sep 17 00:00:00 2001 From: Eduardo Ponz Segrelles Date: Mon, 10 Jun 2024 16:20:34 +0200 Subject: [PATCH 1/2] Correctly initialize `MatchingFailureMask` constants to be used with the `std::bitset` API (#4922) * Refs #21165: Add regression test Signed-off-by: eduponz * Refs #21165: Init MatchingFailureMask constants as normal uints Signed-off-by: eduponz * Refs #21165: Apply Ricardo's suggestions Signed-off-by: eduponz --------- Signed-off-by: eduponz (cherry picked from commit 5e1f1dd22afb2dd50abfbeb0726a06907e01209c) # Conflicts: # include/fastdds/rtps/builtin/discovery/endpoint/EDP.h # test/unittest/rtps/discovery/EdpTests.cpp --- .../rtps/builtin/discovery/endpoint/EDP.h | 13 +++- test/unittest/rtps/discovery/EdpTests.cpp | 69 +++++++++++++++++++ 2 files changed, 79 insertions(+), 3 deletions(-) diff --git a/include/fastdds/rtps/builtin/discovery/endpoint/EDP.h b/include/fastdds/rtps/builtin/discovery/endpoint/EDP.h index bcdc927919a..4d8a53a990e 100644 --- a/include/fastdds/rtps/builtin/discovery/endpoint/EDP.h +++ b/include/fastdds/rtps/builtin/discovery/endpoint/EDP.h @@ -71,16 +71,23 @@ class EDP public: //! Bit index for matching failing due to different topic - static const uint32_t different_topic = (0x00000001 << 0u); + static const uint32_t different_topic = 0u; //! Bit index for matching failing due to inconsistent topic (same topic name but different characteristics) - static const uint32_t inconsistent_topic = (0x00000001 << 1u); + static const uint32_t inconsistent_topic = 1u; //! Bit index for matching failing due to incompatible QoS - static const uint32_t incompatible_qos = (0x00000001 << 2u); + static const uint32_t incompatible_qos = 2u; //! Bit index for matching failing due to inconsistent partitions +<<<<<<< HEAD:include/fastdds/rtps/builtin/discovery/endpoint/EDP.h static const uint32_t partitions = (0x00000001 << 3u); +======= + static const uint32_t partitions = 3u; + + //! Bit index for matching failing due to incompatible TypeInformation + static const uint32_t different_typeinfo = 4u; +>>>>>>> 5e1f1dd22 (Correctly initialize `MatchingFailureMask` constants to be used with the `std::bitset` API (#4922)):src/cpp/rtps/builtin/discovery/endpoint/EDP.h }; /** diff --git a/test/unittest/rtps/discovery/EdpTests.cpp b/test/unittest/rtps/discovery/EdpTests.cpp index 9381ea8722d..9ff84c83667 100644 --- a/test/unittest/rtps/discovery/EdpTests.cpp +++ b/test/unittest/rtps/discovery/EdpTests.cpp @@ -399,6 +399,75 @@ TEST_F(EdpTests, CheckPositiveAckCompatibility) } } +<<<<<<< HEAD +======= +TEST_F(EdpTests, CheckDataRepresentationCompatibility) +{ + using DataRepresentationQosVector = std::vector; + std::vector> testing_cases{ + { {}, {}, fastdds::dds::INVALID_QOS_POLICY_ID}, + { {}, {fastdds::dds::DataRepresentationId::XCDR_DATA_REPRESENTATION}, fastdds::dds::INVALID_QOS_POLICY_ID}, + { {}, + {fastdds::dds::DataRepresentationId::XCDR_DATA_REPRESENTATION, + fastdds::dds::DataRepresentationId::XCDR2_DATA_REPRESENTATION}, + fastdds::dds::INVALID_QOS_POLICY_ID}, + { {}, {fastdds::dds::DataRepresentationId::XCDR2_DATA_REPRESENTATION}, + fastdds::dds::DATAREPRESENTATION_QOS_POLICY_ID}, + { {fastdds::dds::DataRepresentationId::XCDR_DATA_REPRESENTATION}, {}, fastdds::dds::INVALID_QOS_POLICY_ID}, + { {fastdds::dds::DataRepresentationId::XCDR_DATA_REPRESENTATION}, + {fastdds::dds::DataRepresentationId::XCDR_DATA_REPRESENTATION}, + fastdds::dds::INVALID_QOS_POLICY_ID}, + { {fastdds::dds::DataRepresentationId::XCDR_DATA_REPRESENTATION}, + {fastdds::dds::DataRepresentationId::XCDR_DATA_REPRESENTATION, + fastdds::dds::DataRepresentationId::XCDR2_DATA_REPRESENTATION}, + fastdds::dds::INVALID_QOS_POLICY_ID}, + { {fastdds::dds::DataRepresentationId::XCDR_DATA_REPRESENTATION}, + {fastdds::dds::DataRepresentationId::XCDR2_DATA_REPRESENTATION}, + fastdds::dds::DATAREPRESENTATION_QOS_POLICY_ID}, + { {fastdds::dds::DataRepresentationId::XCDR2_DATA_REPRESENTATION}, {}, + fastdds::dds::DATAREPRESENTATION_QOS_POLICY_ID}, + { {fastdds::dds::DataRepresentationId::XCDR2_DATA_REPRESENTATION}, + {fastdds::dds::DataRepresentationId::XCDR_DATA_REPRESENTATION}, + fastdds::dds::DATAREPRESENTATION_QOS_POLICY_ID}, + { {fastdds::dds::DataRepresentationId::XCDR2_DATA_REPRESENTATION}, + {fastdds::dds::DataRepresentationId::XCDR_DATA_REPRESENTATION, + fastdds::dds::DataRepresentationId::XCDR2_DATA_REPRESENTATION}, + fastdds::dds::INVALID_QOS_POLICY_ID}, + { {fastdds::dds::DataRepresentationId::XCDR2_DATA_REPRESENTATION}, + {fastdds::dds::DataRepresentationId::XCDR2_DATA_REPRESENTATION}, + fastdds::dds::INVALID_QOS_POLICY_ID} + }; + + for (auto testing_case : testing_cases) + { + wdata->m_qos.representation.m_value = testing_case.offered_qos; + rdata->m_qos.representation.m_value = testing_case.requested_qos; + check_expectations(testing_case.failed_qos); + } +} + +TEST(MatchingFailureMask, matching_failure_mask_overflow) +{ + EDP::MatchingFailureMask mask; + + mask.set(EDP::MatchingFailureMask::different_topic); + EXPECT_TRUE(mask.test(EDP::MatchingFailureMask::different_topic)); + + mask.set(EDP::MatchingFailureMask::inconsistent_topic); + EXPECT_TRUE(mask.test(EDP::MatchingFailureMask::inconsistent_topic)); + + mask.set(EDP::MatchingFailureMask::incompatible_qos); + EXPECT_TRUE(mask.test(EDP::MatchingFailureMask::incompatible_qos)); + + mask.set(EDP::MatchingFailureMask::partitions); + EXPECT_TRUE(mask.test(EDP::MatchingFailureMask::partitions)); + + mask.set(EDP::MatchingFailureMask::different_typeinfo); + EXPECT_TRUE(mask.test(EDP::MatchingFailureMask::different_typeinfo)); +} + + +>>>>>>> 5e1f1dd22 (Correctly initialize `MatchingFailureMask` constants to be used with the `std::bitset` API (#4922)) } // namespace rtps } // namespace fastrtps } // namespace eprosima From 1ce0e3bbdcff112f786cfdc78de1e811ab412c82 Mon Sep 17 00:00:00 2001 From: Mario Dominguez Date: Tue, 11 Jun 2024 08:31:13 +0200 Subject: [PATCH 2/2] Solve conflicts Signed-off-by: Mario Dominguez --- .../rtps/builtin/discovery/endpoint/EDP.h | 7 --- test/unittest/rtps/discovery/EdpTests.cpp | 52 ------------------- 2 files changed, 59 deletions(-) diff --git a/include/fastdds/rtps/builtin/discovery/endpoint/EDP.h b/include/fastdds/rtps/builtin/discovery/endpoint/EDP.h index 4d8a53a990e..4a1174a15b7 100644 --- a/include/fastdds/rtps/builtin/discovery/endpoint/EDP.h +++ b/include/fastdds/rtps/builtin/discovery/endpoint/EDP.h @@ -80,14 +80,7 @@ class EDP static const uint32_t incompatible_qos = 2u; //! Bit index for matching failing due to inconsistent partitions -<<<<<<< HEAD:include/fastdds/rtps/builtin/discovery/endpoint/EDP.h - static const uint32_t partitions = (0x00000001 << 3u); -======= static const uint32_t partitions = 3u; - - //! Bit index for matching failing due to incompatible TypeInformation - static const uint32_t different_typeinfo = 4u; ->>>>>>> 5e1f1dd22 (Correctly initialize `MatchingFailureMask` constants to be used with the `std::bitset` API (#4922)):src/cpp/rtps/builtin/discovery/endpoint/EDP.h }; /** diff --git a/test/unittest/rtps/discovery/EdpTests.cpp b/test/unittest/rtps/discovery/EdpTests.cpp index 9ff84c83667..fc6e4704d95 100644 --- a/test/unittest/rtps/discovery/EdpTests.cpp +++ b/test/unittest/rtps/discovery/EdpTests.cpp @@ -399,53 +399,6 @@ TEST_F(EdpTests, CheckPositiveAckCompatibility) } } -<<<<<<< HEAD -======= -TEST_F(EdpTests, CheckDataRepresentationCompatibility) -{ - using DataRepresentationQosVector = std::vector; - std::vector> testing_cases{ - { {}, {}, fastdds::dds::INVALID_QOS_POLICY_ID}, - { {}, {fastdds::dds::DataRepresentationId::XCDR_DATA_REPRESENTATION}, fastdds::dds::INVALID_QOS_POLICY_ID}, - { {}, - {fastdds::dds::DataRepresentationId::XCDR_DATA_REPRESENTATION, - fastdds::dds::DataRepresentationId::XCDR2_DATA_REPRESENTATION}, - fastdds::dds::INVALID_QOS_POLICY_ID}, - { {}, {fastdds::dds::DataRepresentationId::XCDR2_DATA_REPRESENTATION}, - fastdds::dds::DATAREPRESENTATION_QOS_POLICY_ID}, - { {fastdds::dds::DataRepresentationId::XCDR_DATA_REPRESENTATION}, {}, fastdds::dds::INVALID_QOS_POLICY_ID}, - { {fastdds::dds::DataRepresentationId::XCDR_DATA_REPRESENTATION}, - {fastdds::dds::DataRepresentationId::XCDR_DATA_REPRESENTATION}, - fastdds::dds::INVALID_QOS_POLICY_ID}, - { {fastdds::dds::DataRepresentationId::XCDR_DATA_REPRESENTATION}, - {fastdds::dds::DataRepresentationId::XCDR_DATA_REPRESENTATION, - fastdds::dds::DataRepresentationId::XCDR2_DATA_REPRESENTATION}, - fastdds::dds::INVALID_QOS_POLICY_ID}, - { {fastdds::dds::DataRepresentationId::XCDR_DATA_REPRESENTATION}, - {fastdds::dds::DataRepresentationId::XCDR2_DATA_REPRESENTATION}, - fastdds::dds::DATAREPRESENTATION_QOS_POLICY_ID}, - { {fastdds::dds::DataRepresentationId::XCDR2_DATA_REPRESENTATION}, {}, - fastdds::dds::DATAREPRESENTATION_QOS_POLICY_ID}, - { {fastdds::dds::DataRepresentationId::XCDR2_DATA_REPRESENTATION}, - {fastdds::dds::DataRepresentationId::XCDR_DATA_REPRESENTATION}, - fastdds::dds::DATAREPRESENTATION_QOS_POLICY_ID}, - { {fastdds::dds::DataRepresentationId::XCDR2_DATA_REPRESENTATION}, - {fastdds::dds::DataRepresentationId::XCDR_DATA_REPRESENTATION, - fastdds::dds::DataRepresentationId::XCDR2_DATA_REPRESENTATION}, - fastdds::dds::INVALID_QOS_POLICY_ID}, - { {fastdds::dds::DataRepresentationId::XCDR2_DATA_REPRESENTATION}, - {fastdds::dds::DataRepresentationId::XCDR2_DATA_REPRESENTATION}, - fastdds::dds::INVALID_QOS_POLICY_ID} - }; - - for (auto testing_case : testing_cases) - { - wdata->m_qos.representation.m_value = testing_case.offered_qos; - rdata->m_qos.representation.m_value = testing_case.requested_qos; - check_expectations(testing_case.failed_qos); - } -} - TEST(MatchingFailureMask, matching_failure_mask_overflow) { EDP::MatchingFailureMask mask; @@ -461,13 +414,8 @@ TEST(MatchingFailureMask, matching_failure_mask_overflow) mask.set(EDP::MatchingFailureMask::partitions); EXPECT_TRUE(mask.test(EDP::MatchingFailureMask::partitions)); - - mask.set(EDP::MatchingFailureMask::different_typeinfo); - EXPECT_TRUE(mask.test(EDP::MatchingFailureMask::different_typeinfo)); } - ->>>>>>> 5e1f1dd22 (Correctly initialize `MatchingFailureMask` constants to be used with the `std::bitset` API (#4922)) } // namespace rtps } // namespace fastrtps } // namespace eprosima