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) (#4928)

* Correctly initialize `MatchingFailureMask` constants to be used with the `std::bitset` API (#4922)

* Refs #21165: Add regression test

Signed-off-by: eduponz <eduardoponz@eprosima.com>

* Refs #21165: Init MatchingFailureMask constants as normal uints

Signed-off-by: eduponz <eduardoponz@eprosima.com>

* Refs #21165: Apply Ricardo's suggestions

Signed-off-by: eduponz <eduardoponz@eprosima.com>

---------

Signed-off-by: eduponz <eduardoponz@eprosima.com>
(cherry picked from commit 5e1f1dd)

# Conflicts:
#	include/fastdds/rtps/builtin/discovery/endpoint/EDP.h
#	test/unittest/rtps/discovery/EdpTests.cpp

* Solve conflicts

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

---------

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
Co-authored-by: Eduardo Ponz Segrelles <eduardoponz@eprosima.com>
Co-authored-by: Mario Dominguez <mariodominguez@eprosima.com>
  • Loading branch information
3 people authored Jun 18, 2024
1 parent 15a93a0 commit 63561b8
Show file tree
Hide file tree
Showing 2 changed files with 21 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
17 changes: 17 additions & 0 deletions test/unittest/rtps/discovery/EdpTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -399,6 +399,23 @@ TEST_F(EdpTests, CheckPositiveAckCompatibility)
}
}

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 63561b8

Please sign in to comment.