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]>
  • Loading branch information
EduPonz authored Jun 10, 2024
1 parent 8c89074 commit 5e1f1dd
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 5 deletions.
10 changes: 5 additions & 5 deletions src/cpp/rtps/builtin/discovery/endpoint/EDP.h
Original file line number Diff line number Diff line change
Expand Up @@ -78,19 +78,19 @@ 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;

//! Bit index for matching failing due to incompatible TypeInformation
static const uint32_t different_typeinfo = (0x00000001 << 4u);
static const uint32_t different_typeinfo = 4u;
};

/**
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 @@ -481,6 +481,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 5e1f1dd

Please sign in to comment.