From 56d1ae8c174a1baa8409638ad775a860bc3de4a1 Mon Sep 17 00:00:00 2001 From: Jan Schlosser Date: Sun, 21 Jun 2026 07:33:58 +0200 Subject: [PATCH 1/4] Bump QNX Toolchain and QNX-Unit-Tests Modules This way now coverage data for QNX tests will be produced and put into the correct location. --- MODULE.bazel | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 7f1749b73..1e7a2d4f3 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -25,7 +25,7 @@ bazel_dep(name = "rules_python", version = "1.8.5") bazel_dep(name = "rules_rust", version = "0.68.1-score") # Cannot be dev-dependency due to being required in "load" statements -bazel_dep(name = "score_qnx_unit_tests", version = "0.1.0") +bazel_dep(name = "score_qnx_unit_tests", version = "0.2.0") bazel_dep(name = "score_baselibs", version = "0.2.7") git_override( module_name = "score_baselibs", @@ -81,7 +81,7 @@ gcc_toolchains.toolchain( ) use_repo(gcc_toolchains, "gcc_toolchain_x86_64") -bazel_dep(name = "score_bazel_cpp_toolchains", version = "0.5.1", dev_dependency = True) +bazel_dep(name = "score_bazel_cpp_toolchains", version = "0.5.4", dev_dependency = True) score_gcc = use_extension("@score_bazel_cpp_toolchains//extensions:gcc.bzl", "gcc", dev_dependency = True) score_gcc.toolchain( @@ -102,7 +102,7 @@ score_gcc.toolchain( ) score_gcc.toolchain( name = "score_qcc_x86_64_toolchain", - sdp_version = "8.0.3", + sdp_version = "8.0.4", target_cpu = "x86_64", target_os = "qnx", use_default_package = True, @@ -110,7 +110,7 @@ score_gcc.toolchain( ) score_gcc.toolchain( name = "score_qcc_aarch64_toolchain", - sdp_version = "8.0.3", + sdp_version = "8.0.4", target_cpu = "aarch64", target_os = "qnx", use_default_package = True, From 62bd0ae9ec23a1e50f771f888976c12628473c59 Mon Sep 17 00:00:00 2001 From: Jan Schlosser Date: Sun, 21 Jun 2026 07:59:32 +0200 Subject: [PATCH 2/4] Bump toolchains_llvm We need to fix some raised compiler warnings which are now found with this bump. We require the bump to be able to inject features into the toolchain. --- MODULE.bazel | 2 +- .../message_passing_service_instance_methods_test.cpp | 4 ++-- .../lola/provider_event_data_control_local_view_test.cpp | 1 - .../mw/com/impl/bindings/lola/sample_allocatee_ptr_test.cpp | 1 - .../com/impl/bindings/lola/skeleton_method_handling_test.cpp | 2 +- score/mw/com/impl/bindings/lola/transaction_log_set_test.cpp | 3 +-- .../com/test/methods/non_trivial_constructors/consumer.cpp | 5 ++--- .../consumer.cpp | 3 --- 8 files changed, 7 insertions(+), 14 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 1e7a2d4f3..d369c1e56 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -214,7 +214,7 @@ apt.install( apt.lock(into = ":rules_distroless.lock.json") use_repo(apt, "ubuntu24_04_integration_testing", "ubuntu24_04_sysroot") -bazel_dep(name = "toolchains_llvm", version = "1.5.0", dev_dependency = True) +bazel_dep(name = "toolchains_llvm", version = "1.8.0", dev_dependency = True) llvm = use_extension( "@toolchains_llvm//toolchain/extensions:llvm.bzl", diff --git a/score/mw/com/impl/bindings/lola/messaging/message_passing_service_instance_methods_test.cpp b/score/mw/com/impl/bindings/lola/messaging/message_passing_service_instance_methods_test.cpp index 71a3876e3..1c0cffaee 100644 --- a/score/mw/com/impl/bindings/lola/messaging/message_passing_service_instance_methods_test.cpp +++ b/score/mw/com/impl/bindings/lola/messaging/message_passing_service_instance_methods_test.cpp @@ -770,7 +770,7 @@ TEST_F(MessagePassingServiceInstanceHandleMessageWithReplyTest, RepliesWithError // When a MessageWithReply message is received which is empty std::vector empty_message(0U); - const auto result = received_send_message_with_reply_callback_( + std::ignore = received_send_message_with_reply_callback_( server_connection_mock_, score::cpp::span{empty_message.data(), empty_message.size()}); } @@ -805,7 +805,7 @@ TEST_F(MessagePassingServiceInstanceHandleMessageWithReplyTest, RepliesWithError // When a MessageWithReply message is received of unexpected type std::vector payload_with_unexpected_type(sizeof(MethodCallUnserializedPayload) + 2U); payload_with_unexpected_type[0] = 20U; - const auto result = received_send_message_with_reply_callback_( + std::ignore = received_send_message_with_reply_callback_( server_connection_mock_, score::cpp::span{payload_with_unexpected_type.data(), payload_with_unexpected_type.size()}); } diff --git a/score/mw/com/impl/bindings/lola/provider_event_data_control_local_view_test.cpp b/score/mw/com/impl/bindings/lola/provider_event_data_control_local_view_test.cpp index b1e24db8c..f8c01da4c 100644 --- a/score/mw/com/impl/bindings/lola/provider_event_data_control_local_view_test.cpp +++ b/score/mw/com/impl/bindings/lola/provider_event_data_control_local_view_test.cpp @@ -39,7 +39,6 @@ using ::testing::_; using ::testing::Return; constexpr std::size_t kMaxSlots{5U}; -constexpr std::size_t kMaxSubscribers{5U}; constexpr auto kSlotIsInWriting = std::numeric_limits::max(); diff --git a/score/mw/com/impl/bindings/lola/sample_allocatee_ptr_test.cpp b/score/mw/com/impl/bindings/lola/sample_allocatee_ptr_test.cpp index 7e312c549..456226d48 100644 --- a/score/mw/com/impl/bindings/lola/sample_allocatee_ptr_test.cpp +++ b/score/mw/com/impl/bindings/lola/sample_allocatee_ptr_test.cpp @@ -33,7 +33,6 @@ struct DummyStruct }; constexpr std::size_t kMaxSlots{5U}; -constexpr std::size_t kMaxSubscribers{5U}; class SampleAllocateePtrFixture : public ::testing::Test { diff --git a/score/mw/com/impl/bindings/lola/skeleton_method_handling_test.cpp b/score/mw/com/impl/bindings/lola/skeleton_method_handling_test.cpp index f4256464f..532ab01da 100644 --- a/score/mw/com/impl/bindings/lola/skeleton_method_handling_test.cpp +++ b/score/mw/com/impl/bindings/lola/skeleton_method_handling_test.cpp @@ -468,7 +468,7 @@ TEST_F(SkeletonPrepareOfferFixture, PrepareOfferWillNotCallUnregisterSubscribedM })); // When calling PrepareOffer - const auto result = PrepareOffer(); + std::ignore = PrepareOffer(); // Then UnregisterOnServiceMethodSubscribedHandler was not called during PrepareOffer EXPECT_FALSE(*unregister_called); diff --git a/score/mw/com/impl/bindings/lola/transaction_log_set_test.cpp b/score/mw/com/impl/bindings/lola/transaction_log_set_test.cpp index 570ac523e..01604e70c 100644 --- a/score/mw/com/impl/bindings/lola/transaction_log_set_test.cpp +++ b/score/mw/com/impl/bindings/lola/transaction_log_set_test.cpp @@ -637,8 +637,7 @@ TEST_F(TransactionLogSetRegisterFixture, RegisterUnregisterMultipleTransactionLo // again. for (std::size_t thread_idx = 0; thread_idx < thread_count; ++thread_idx) { - threads.emplace_back([this, - &unit, + threads.emplace_back([&unit, thread_number = TransactionLogIndex(thread_idx + 1U), &consumer_event_data_control_locals, thread_idx]() noexcept { diff --git a/score/mw/com/test/methods/non_trivial_constructors/consumer.cpp b/score/mw/com/test/methods/non_trivial_constructors/consumer.cpp index 3304d4541..3d8ff16b8 100644 --- a/score/mw/com/test/methods/non_trivial_constructors/consumer.cpp +++ b/score/mw/com/test/methods/non_trivial_constructors/consumer.cpp @@ -36,8 +36,7 @@ const InstanceSpecifier kInstanceSpecifier = void CallMethodWithInArgsAndReturn(NonTrivialConstructorProxy& proxy, const std::string& failure_message_prefix) { - auto call_result = - [&proxy, &failure_message_prefix]() -> score::Result> { + auto call_result = [&proxy]() -> score::Result> { std::cout << "\n=== Test: with_in_args_and_return (zero-copy) ===" << std::endl; auto allocated_args_result = proxy.with_in_args_and_return.Allocate(); if (!allocated_args_result.has_value()) @@ -66,7 +65,7 @@ void CallMethodWithInArgsAndReturn(NonTrivialConstructorProxy& proxy, const std: void CallMethodWithInArgsOnly(NonTrivialConstructorProxy& proxy, const std::string& failure_message_prefix) { - auto call_result = [&proxy, &failure_message_prefix]() -> Result { + auto call_result = [&proxy]() -> Result { std::cout << "\n=== Test: with_in_args_only (zero-copy) ===" << std::endl; auto allocated_args_result = proxy.with_in_args_only.Allocate(); if (!allocated_args_result.has_value()) diff --git a/score/mw/com/test/partial_restart/proxy_restart_shall_not_affect_other_proxies/consumer.cpp b/score/mw/com/test/partial_restart/proxy_restart_shall_not_affect_other_proxies/consumer.cpp index f5812cbf3..16f8b8623 100644 --- a/score/mw/com/test/partial_restart/proxy_restart_shall_not_affect_other_proxies/consumer.cpp +++ b/score/mw/com/test/partial_restart/proxy_restart_shall_not_affect_other_proxies/consumer.cpp @@ -36,9 +36,6 @@ constexpr auto kInstanceSpecifierString{"partial_restart/small_but_great"}; const auto kInstanceSpecifier = score::mw::com::InstanceSpecifier::Create(std::string{kInstanceSpecifierString}).value(); const std::chrono::seconds kMaxHandleNotificationWaitTime{15U}; -// uid 1312, 1313 is reserved for use. See broken_link_cf/display/ipnext/User+Management -const uid_t kUidFirstConsumer{1312}; -const uid_t kUidSecondConsumer{1313}; bool StartFindServiceAndWait(const std::string& tag, HandleNotificationData& handle_notification_data, From 083ad6bce55e666dc7509f335787c2fbc2a516f4 Mon Sep 17 00:00:00 2001 From: Jan Schlosser Date: Sun, 21 Jun 2026 08:13:57 +0200 Subject: [PATCH 3/4] Aviod duplicate execution of QNX Unit-Tests Until now the QNX Unit tests have been executed twice, once as "normal" named test and once with the "_qnx" named test. With this commit we avoid that the same test is executed twiceAviod duplicate execution of QNX Unit-Tests Until now the QNX Unit tests have been executed twice, once as "normal" named test and once with the "_qnx" named test. With this commit we avoid that the same test is executed twice.. --- quality/unit_testing/unit_testing.bzl | 1 + 1 file changed, 1 insertion(+) diff --git a/quality/unit_testing/unit_testing.bzl b/quality/unit_testing/unit_testing.bzl index df3c7fd8f..9f9011619 100644 --- a/quality/unit_testing/unit_testing.bzl +++ b/quality/unit_testing/unit_testing.bzl @@ -118,6 +118,7 @@ def cc_unit_test(name, target_compatible_with = [], tags = [], **kwargs): cc_test_qnx( name = name_qnx, cc_test = name_linux, + tags = ["manual"], ) _forwarding_test( From 82be0dd6afe3a6cd996d6c6b18d95a1c8d2576ef Mon Sep 17 00:00:00 2001 From: Ulrich Huber Date: Wed, 24 Jun 2026 11:55:03 +0200 Subject: [PATCH 4/4] Disable patch for QNX --- MODULE.bazel | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index d369c1e56..7b9963f29 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -31,10 +31,10 @@ git_override( module_name = "score_baselibs", # Required until a new release of baselibs is available that includes the tracing API commit = "a0bae98d65bda42e02d3d5732a55895e1a66cdaa", - patch_strip = 1, - # Patch baselibs with a QNX8 workaround for poll - # until a fix is provided by the QNX SDP - patches = ["//third_party/score_baselibs:restore_qnx8_poll_workaround.patch"], +# patch_strip = 1, +# # Patch baselibs with a QNX8 workaround for poll +# # until a fix is provided by the QNX SDP +# patches = ["//third_party/score_baselibs:restore_qnx8_poll_workaround.patch"], remote = "https://github.com/eclipse-score/baselibs.git", )