Skip to content

Commit

Permalink
Correctly initialize MatchingFailureMask constants to be used with …
Browse files Browse the repository at this point in the history
…the `std::bitset` API (#4922)

* Refs #21165: Add regression test

Signed-off-by: eduponz <[email protected]>

* Refs #21165: Init MatchingFailureMask constants as normal uints

Signed-off-by: eduponz <[email protected]>

* Refs #21165: Apply Ricardo's suggestions

Signed-off-by: eduponz <[email protected]>

---------

Signed-off-by: eduponz <[email protected]>
(cherry picked from commit 5e1f1dd)

# Conflicts:
#	include/fastdds/rtps/builtin/discovery/endpoint/EDP.h
  • Loading branch information
EduPonz authored and mergify[bot] committed Jun 10, 2024
1 parent 69874e1 commit d347758
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 3 deletions.
13 changes: 10 additions & 3 deletions include/fastdds/rtps/builtin/discovery/endpoint/EDP.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
};

/**
Expand Down
21 changes: 21 additions & 0 deletions test/unittest/rtps/discovery/EdpTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -434,6 +434,27 @@ TEST_F(EdpTests, CheckDataRepresentationCompatibility)
}
}

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));
}


} // namespace rtps
} // namespace fastrtps
} // namespace eprosima
Expand Down

0 comments on commit d347758

Please sign in to comment.