From f8c1cf76de9fe210a53df818e4f2abedf74efa80 Mon Sep 17 00:00:00 2001 From: Miguel Company Date: Wed, 12 Nov 2025 08:02:19 +0100 Subject: [PATCH 1/2] Upgrade to macOS Sequoia (#6070) * Refs #23750. Change runner in CI. Signed-off-by: Miguel Company * Refs #23750. Update platform support. Signed-off-by: Miguel Company * Refs #23750. Apply suggestion. Signed-off-by: Miguel Company * Refs #23750. Update to macos-15. Signed-off-by: Miguel Company * Refs #23750. Do not build IPv6 blackbox tests in Mac. Signed-off-by: Miguel Company * Refs #23750. Exclude whitelist tests. Signed-off-by: Miguel Company * Refs #23750. Fix DataWriterTests. Signed-off-by: Miguel Company * Refs #23750. Change blacklisting of IPv6 test. Signed-off-by: Miguel Company * Refs #23750. Remove multicast from DDSPersistenceTests. Signed-off-by: Miguel Company --------- Signed-off-by: Miguel Company (cherry picked from commit 9ecbd27a8d5b9d6bad11083c961a79dafe5f6f99) # Conflicts: # PLATFORM_SUPPORT.md --- .github/workflows/reusable-mac-ci.yml | 17 +++++++------ PLATFORM_SUPPORT.md | 11 ++++++++- .../common/DDSBlackboxTestsPersistence.cpp | 24 +------------------ .../dds/publisher/DataWriterTests.cpp | 4 ++-- 4 files changed, 21 insertions(+), 35 deletions(-) diff --git a/.github/workflows/reusable-mac-ci.yml b/.github/workflows/reusable-mac-ci.yml index 3b0f350bcfb..73a14e696f9 100644 --- a/.github/workflows/reusable-mac-ci.yml +++ b/.github/workflows/reusable-mac-ci.yml @@ -39,19 +39,16 @@ on: type: boolean default: true +env: + test_blocklist: 'InterfaceWhitelist|send_to_allowed_interface|v6' + defaults: run: shell: bash jobs: fastdds_build: - # As explained in https://github.com/actions/runner-images/tree/main?tab=readme-ov-file#available-images, - # *-latest images are not always the latest available versions. The minimum version of the macOS image - # with clang 15 is macos-13 (see - # https://github.com/actions/runner-images/blob/main/images/macos/macos-13-Readme.md#language-and-runtime), - # so we'll use that one for now, as clang 15 is the supported compiler for Fast DDS in macOS. - # (see https://github.com/eProsima/Fast-DDS/blob/master/PLATFORM_SUPPORT.md#compilers) - runs-on: macos-13 + runs-on: macos-15-intel strategy: fail-fast: false matrix: @@ -153,7 +150,7 @@ jobs: fastdds_test: needs: fastdds_build name: fastdds_test (${{ matrix.cmake_build_type }}) - runs-on: macos-13 + runs-on: macos-15-intel strategy: fail-fast: false matrix: @@ -225,7 +222,9 @@ jobs: colcon_meta_file: ${{ github.workspace }}/src/fastdds/.github/workflows/config/fastdds_test.meta colcon_test_args: ${{ inputs.colcon-args }} colcon_test_args_default: --event-handlers=console_direct+ - ctest_args: ${{ inputs.ctest-args }} + ctest_args: > + ${{ inputs.ctest-args }} + ${{ format('-E "{0}"', env.test_blocklist) }} packages_names: fastdds workspace: ${{ github.workspace }} test_report_artifact: ${{ format('test_report_{0}_{1}_{2}', inputs.label, github.job, join(matrix.*, '_')) }} diff --git a/PLATFORM_SUPPORT.md b/PLATFORM_SUPPORT.md index 35a6e70315d..6113fa82e54 100644 --- a/PLATFORM_SUPPORT.md +++ b/PLATFORM_SUPPORT.md @@ -31,12 +31,21 @@ Community members may provide assistance with these platforms. ## Platforms +<<<<<<< HEAD |Architecture|Ubuntu Noble (24.04)|Ubuntu Jammy (22.04)|MacOS Mojave (10.14)|Windows 10 (VS2019)|Windows 11 (VS2022)|Debian Buster (10)|Android 12 |Android 13 | QNX 7.1 | |------------|--------------------|--------------------|--------------------|-------------------|-------------------|------------------|-----------|-----------|-----------| |amd64 |Tier 3 [^a][^s] |Tier 1 [^a][^s] |Tier 1 [^s] |Tier 3 [^a][^s] |Tier 1 [^a][^s] |Tier 3 [^s] |Tier 3 [^s]|Tier 3 [^s]|Tier 3 [^s]| |amd32 | | |Tier 3 [^a][^s] |Tier 3 [^a][^s] | | | | | |arm64 |Tier 3 [^a][^s] |Tier 1 [^a][^s] | | | |Tier 3 [^s] |Tier 3 [^s]|Tier 3 [^s]|Tier 3 [^s]| |arm32 | |Tier 3 [^s] | | | |Tier 3 [^s] |Tier 3 [^s]|Tier 3 [^s]| | +======= +|Architecture|Ubuntu Noble (24.04)|Ubuntu Jammy (22.04)|MacOS Sequoia (15)|Windows 10 (VS2019)|Windows 11 (VS2022)|Debian Buster (10)|Android 12 |Android 13 | QNX 7.1 | +|------------|--------------------|--------------------|------------------|-------------------|-------------------|------------------|-----------|-----------|-----------| +|amd64 |Tier 3 [^a][^s] |Tier 1 [^a][^s] |Tier 1 [^s] |Tier 1 [^a][^s] |Tier 1 [^a][^s] |Tier 3 [^s] |Tier 3 [^s]|Tier 3 [^s]|Tier 3 [^s]| +|amd32 | | | |Tier 3 [^a][^s] |Tier 3 [^a][^s] | | | | | +|arm64 |Tier 3 [^a][^s] |Tier 1 [^a][^s] | | | |Tier 3 [^s] |Tier 3 [^s]|Tier 3 [^s]|Tier 3 [^s]| +|arm32 | |Tier 3 [^s] | | | |Tier 3 [^s] |Tier 3 [^s]|Tier 3 [^s]| | +>>>>>>> 9ecbd27a (Upgrade to macOS Sequoia (#6070)) More information about Platforms support and eProsima products compatibility can be found on [Fast DDS Documentation](https://fast-dds.docs.eprosima.com/en/latest/notes/versions.html#dependencies-and-compatibilities). @@ -48,7 +57,7 @@ More information about Platforms support and eProsima products compatibility can Tier 1 compilers and minimum supported versions: * GCC 11.4 [^d] -* Clang 15 +* Clang 16 * MSVC v142 (Visual Studio 2019) [^d]: Using GCC's Thread Sanitizer flags in conjunction with GCC 11 to analyze Fast DDS threaded behavior produces diff --git a/test/blackbox/common/DDSBlackboxTestsPersistence.cpp b/test/blackbox/common/DDSBlackboxTestsPersistence.cpp index 18c45afb1f4..d7893df2f6d 100644 --- a/test/blackbox/common/DDSBlackboxTestsPersistence.cpp +++ b/test/blackbox/common/DDSBlackboxTestsPersistence.cpp @@ -368,16 +368,6 @@ TEST_P(DDSPersistenceTests, PubSubAsReliablePubTransientWithStaticDiscovery) R_UNICAST_PORT_RANDOM_NUMBER_STR = "7421"; } int32_t R_UNICAST_PORT_RANDOM_NUMBER = stoi(R_UNICAST_PORT_RANDOM_NUMBER_STR); - value = std::getenv("MULTICAST_PORT_RANDOM_NUMBER"); - if (value != nullptr) - { - MULTICAST_PORT_RANDOM_NUMBER_STR = value; - } - else - { - MULTICAST_PORT_RANDOM_NUMBER_STR = "7400"; - } - int32_t MULTICAST_PORT_RANDOM_NUMBER = stoi(MULTICAST_PORT_RANDOM_NUMBER_STR); PubSubWriter writer(TEST_TOPIC_NAME); @@ -389,18 +379,12 @@ TEST_P(DDSPersistenceTests, PubSubAsReliablePubTransientWithStaticDiscovery) IPLocator::setIPv4(LocatorBuffer, 127, 0, 0, 1); WriterUnicastLocators.push_back(LocatorBuffer); - LocatorList_t WriterMulticastLocators; - - LocatorBuffer.port = static_cast(MULTICAST_PORT_RANDOM_NUMBER); - WriterMulticastLocators.push_back(LocatorBuffer); - writer .history_kind(eprosima::fastdds::dds::KEEP_ALL_HISTORY_QOS) .reliability(eprosima::fastdds::dds::RELIABLE_RELIABILITY_QOS) .make_transient(db_file_name(), "78.73.69.74.65.72.5f.70.65.72.73.5f|67.75.69.1") .static_discovery("file://PubSubWriterPersistence_static_disc.xml") .unicastLocatorList(WriterUnicastLocators) - .multicast_locator_list(WriterMulticastLocators) .setPublisherIDs(1, 2) .setManualTopicName(std::string("BlackBox_StaticDiscovery_") + TOPIC_RANDOM_NUMBER) .user_data({'V', 'G', 'W', 0x78, 0x73, 0x69, 0x74, 0x65, 0x72, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x5f, 0x67, @@ -416,11 +400,6 @@ TEST_P(DDSPersistenceTests, PubSubAsReliablePubTransientWithStaticDiscovery) LocatorBuffer.port = static_cast(R_UNICAST_PORT_RANDOM_NUMBER); ReaderUnicastLocators.push_back(LocatorBuffer); - LocatorList_t ReaderMulticastLocators; - - LocatorBuffer.port = static_cast(MULTICAST_PORT_RANDOM_NUMBER); - ReaderMulticastLocators.push_back(LocatorBuffer); - reader .history_kind(eprosima::fastdds::dds::KEEP_LAST_HISTORY_QOS) .history_depth(10) @@ -428,7 +407,6 @@ TEST_P(DDSPersistenceTests, PubSubAsReliablePubTransientWithStaticDiscovery) .make_transient(db_file_name(), "78.73.69.74.65.72.5f.70.65.72.73.5f|67.75.69.3") .static_discovery("file://PubSubReaderPersistence_static_disc.xml") .unicastLocatorList(ReaderUnicastLocators) - .multicast_locator_list(ReaderMulticastLocators) .setSubscriberIDs(3, 4) .setManualTopicName(std::string("BlackBox_StaticDiscovery_") + TOPIC_RANDOM_NUMBER) .init(); @@ -449,7 +427,7 @@ TEST_P(DDSPersistenceTests, PubSubAsReliablePubTransientWithStaticDiscovery) reader.startReception(unreceived_data); - // Wait expecting not receiving data. + // Wait expecting receiving data. ASSERT_EQ(10u, reader.block_for_all(std::chrono::seconds(1))); // Destroy the DataWriter diff --git a/test/unittest/dds/publisher/DataWriterTests.cpp b/test/unittest/dds/publisher/DataWriterTests.cpp index 33531113292..d9a177ec7d1 100644 --- a/test/unittest/dds/publisher/DataWriterTests.cpp +++ b/test/unittest/dds/publisher/DataWriterTests.cpp @@ -784,7 +784,7 @@ TEST(DataWriterTests, Write) data.message("HelloWorld"); ASSERT_FALSE(datawriter->write(nullptr, HANDLE_NIL) == RETCODE_OK); ASSERT_TRUE(datawriter->write(&data, HANDLE_NIL) == RETCODE_OK); - ASSERT_TRUE(datawriter->write(&data, participant->get_instance_handle()) == + ASSERT_TRUE(datawriter->write(&data, datawriter->get_instance_handle()) == RETCODE_PRECONDITION_NOT_MET); ASSERT_TRUE(publisher->delete_datawriter(datawriter) == RETCODE_OK); @@ -825,7 +825,7 @@ TEST(DataWriterTests, WriteWithTimestamp) datawriter->write_w_timestamp(&data, HANDLE_NIL, fastdds::dds::c_TimeInvalid)); // 3. Calling write with a wrong instance handle returns RETCODE_PRECONDITION_NOT_MET ASSERT_EQ(RETCODE_PRECONDITION_NOT_MET, - datawriter->write_w_timestamp(&data, participant->get_instance_handle(), ts)); + datawriter->write_w_timestamp(&data, datawriter->get_instance_handle(), ts)); // 4. Correct case ASSERT_EQ(RETCODE_OK, datawriter->write_w_timestamp(&data, HANDLE_NIL, ts)); From 4b85674c0b843788fbb7c791b8d5c9ae969b9f0f Mon Sep 17 00:00:00 2001 From: Miguel Company Date: Wed, 12 Nov 2025 08:36:45 +0100 Subject: [PATCH 2/2] Fix conflicts Signed-off-by: Miguel Company --- PLATFORM_SUPPORT.md | 9 --------- 1 file changed, 9 deletions(-) diff --git a/PLATFORM_SUPPORT.md b/PLATFORM_SUPPORT.md index 6113fa82e54..2915e9b6805 100644 --- a/PLATFORM_SUPPORT.md +++ b/PLATFORM_SUPPORT.md @@ -31,21 +31,12 @@ Community members may provide assistance with these platforms. ## Platforms -<<<<<<< HEAD -|Architecture|Ubuntu Noble (24.04)|Ubuntu Jammy (22.04)|MacOS Mojave (10.14)|Windows 10 (VS2019)|Windows 11 (VS2022)|Debian Buster (10)|Android 12 |Android 13 | QNX 7.1 | -|------------|--------------------|--------------------|--------------------|-------------------|-------------------|------------------|-----------|-----------|-----------| -|amd64 |Tier 3 [^a][^s] |Tier 1 [^a][^s] |Tier 1 [^s] |Tier 3 [^a][^s] |Tier 1 [^a][^s] |Tier 3 [^s] |Tier 3 [^s]|Tier 3 [^s]|Tier 3 [^s]| -|amd32 | | |Tier 3 [^a][^s] |Tier 3 [^a][^s] | | | | | -|arm64 |Tier 3 [^a][^s] |Tier 1 [^a][^s] | | | |Tier 3 [^s] |Tier 3 [^s]|Tier 3 [^s]|Tier 3 [^s]| -|arm32 | |Tier 3 [^s] | | | |Tier 3 [^s] |Tier 3 [^s]|Tier 3 [^s]| | -======= |Architecture|Ubuntu Noble (24.04)|Ubuntu Jammy (22.04)|MacOS Sequoia (15)|Windows 10 (VS2019)|Windows 11 (VS2022)|Debian Buster (10)|Android 12 |Android 13 | QNX 7.1 | |------------|--------------------|--------------------|------------------|-------------------|-------------------|------------------|-----------|-----------|-----------| |amd64 |Tier 3 [^a][^s] |Tier 1 [^a][^s] |Tier 1 [^s] |Tier 1 [^a][^s] |Tier 1 [^a][^s] |Tier 3 [^s] |Tier 3 [^s]|Tier 3 [^s]|Tier 3 [^s]| |amd32 | | | |Tier 3 [^a][^s] |Tier 3 [^a][^s] | | | | | |arm64 |Tier 3 [^a][^s] |Tier 1 [^a][^s] | | | |Tier 3 [^s] |Tier 3 [^s]|Tier 3 [^s]|Tier 3 [^s]| |arm32 | |Tier 3 [^s] | | | |Tier 3 [^s] |Tier 3 [^s]|Tier 3 [^s]| | ->>>>>>> 9ecbd27a (Upgrade to macOS Sequoia (#6070)) More information about Platforms support and eProsima products compatibility can be found on [Fast DDS Documentation](https://fast-dds.docs.eprosima.com/en/latest/notes/versions.html#dependencies-and-compatibilities).