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)
  • Loading branch information
EduPonz committed Jun 11, 2024
1 parent 6223543 commit c09de59
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 4 deletions.
8 changes: 4 additions & 4 deletions include/fastdds/rtps/builtin/discovery/endpoint/EDP.h
Original file line number Diff line number Diff line change
Expand Up @@ -71,16 +71,16 @@ 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
static const uint32_t partitions = (0x00000001 << 3u);
static const uint32_t partitions = 3u;
};

/**
Expand Down
18 changes: 18 additions & 0 deletions test/unittest/rtps/discovery/EdpTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -434,6 +434,24 @@ 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));
}


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

0 comments on commit c09de59

Please sign in to comment.