From 83a3c2cf252d7e2305ca26b1477943d46bc811e9 Mon Sep 17 00:00:00 2001 From: Arkadiusz Jedrzejewski Date: Thu, 18 Jun 2026 12:15:53 +0200 Subject: [PATCH 1/2] miri: use Bazel target for Miri tests - Enable Miri for Bazel in repo. - Add `miri_test` target for HMON. - Remove unnecessary Miri workflow. - Fix coverage workflow. - Disable Miri for Rust coverage workflow. - Disable Rust targets for C++ coverage and vice versa. --- .bazelrc | 2 ++ .github/workflows/code_coverage.yml | 4 +-- .github/workflows/miri.yml | 38 ----------------------------- score/health_monitor/src/rust/BUILD | 17 ++++++++++++- 4 files changed, 20 insertions(+), 41 deletions(-) delete mode 100644 .github/workflows/miri.yml diff --git a/.bazelrc b/.bazelrc index 15d4aaa1a..ee9acdc4a 100644 --- a/.bazelrc +++ b/.bazelrc @@ -50,6 +50,7 @@ build:x86_64-linux --config=toolchain_common build:x86_64-linux --platforms=@score_bazel_platforms//:x86_64-linux-gcc_12.2.0-posix build:x86_64-linux --extra_toolchains=@score_gcc_x86_64_toolchain//:x86_64-linux-gcc_12.2.0-posix build:x86_64-linux --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_x86_64_unknown_linux_gnu +build:x86_64-linux --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_x86_64_unknown_linux_gnu_miri build:x86_64-linux --define config=x86_64-linux # Target configuration for CPU:AArch64|OS:Linux build (do not use it in case of system toolchains!) @@ -58,6 +59,7 @@ build:arm64-linux --config=toolchain_common build:arm64-linux --platforms=@score_bazel_platforms//:aarch64-linux-gcc_12.2.0-posix build:arm64-linux --extra_toolchains=@score_gcc_aarch64_toolchain//:aarch64-linux-gcc_12.2.0-posix build:arm64-linux --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_aarch64_unknown_linux_gnu +build:arm64-linux --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_aarch64_unknown_linux_gnu_miri build:arm64-linux --copt=-mno-outline-atomics build:arm64-linux --linkopt=-latomic diff --git a/.github/workflows/code_coverage.yml b/.github/workflows/code_coverage.yml index e729f195a..aa7f08507 100644 --- a/.github/workflows/code_coverage.yml +++ b/.github/workflows/code_coverage.yml @@ -28,7 +28,7 @@ jobs: with: bazel-target: "//score/..." bazel-config: "x86_64-linux" - extra-bazel-flags: "--test_output=errors --nocache_test_results --lockfile_mode=error" + extra-bazel-flags: "--test_output=errors --nocache_test_results --lockfile_mode=error --test_lang_filters=-rust,-miri" artifact-name-suffix: "_cpp" retention-days: 10 min-coverage: 76 @@ -36,7 +36,7 @@ jobs: uses: eclipse-score/cicd-workflows/.github/workflows/rust-coverage.yml@ea19fcae9aeeb4ac678b750c6c197eaf75414f39 # v0.0.0 with: bazel-test-targets: "//score/..." - bazel-test-config-flags: "--config=x86_64-linux --config=ferrocene-coverage --lockfile_mode=error" + bazel-test-config-flags: "--config=x86_64-linux --config=ferrocene-coverage --lockfile_mode=error --test_lang_filters=-cc,-miri" bazel-test-args: "--test_output=errors --nocache_test_results" coverage-target: "//:rust_coverage" coverage-artifact-name: "rust-coverage-html" diff --git a/.github/workflows/miri.yml b/.github/workflows/miri.yml deleted file mode 100644 index 1d32592ac..000000000 --- a/.github/workflows/miri.yml +++ /dev/null @@ -1,38 +0,0 @@ -# ******************************************************************************* -# Copyright (c) 2025 Contributors to the Eclipse Foundation -# -# See the NOTICE file(s) distributed with this work for additional -# information regarding copyright ownership. -# -# This program and the accompanying materials are made available under the -# terms of the Apache License Version 2.0 which is available at -# https://www.apache.org/licenses/LICENSE-2.0 -# -# SPDX-License-Identifier: Apache-2.0 -# ******************************************************************************* - -name: Miri check - -on: - pull_request: - branches: [main, development] - types: [opened, ready_for_review, reopened, synchronize] - -env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} -jobs: - miri: - runs-on: ubuntu-latest - env: - MIRIFLAGS: "-Zmiri-ignore-leaks -Zmiri-disable-isolation" - steps: - - uses: actions/checkout@v4 - - - uses: dtolnay/rust-toolchain@stable - with: - toolchain: nightly-2025-12-15 - components: miri, rust-src - - - name: Cargo Miri - run: | - cargo +nightly-2025-12-15 miri test --features stub_supervisor_api_client --no-default-features diff --git a/score/health_monitor/src/rust/BUILD b/score/health_monitor/src/rust/BUILD index 202ec5ba3..7f578f022 100644 --- a/score/health_monitor/src/rust/BUILD +++ b/score/health_monitor/src/rust/BUILD @@ -11,7 +11,7 @@ # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* -load("@rules_rust//rust:defs.bzl", "rust_library", "rust_static_library", "rust_test") +load("@rules_rust//rust:defs.bzl", "miri_test", "rust_library", "rust_static_library", "rust_test") COMMON_RUST_DEPS = [ "@score_baselibs_rust//src/containers:containers", @@ -103,3 +103,18 @@ rust_test( "@score_crates//:loom", ], ) + +miri_test( + name = "miri_tests", + crate = ":tests", + miri_flags = [ + "-Zmiri-ignore-leaks", + "-Zmiri-disable-isolation", + '--cfg=feature="stub_supervisor_api_client"', + ], + tags = [ + "miri", + "no-asan", + ], + target_compatible_with = ["@platforms//os:linux"], +) From 67cb346a2f623be6bc4e1d68565bd815e6cd985b Mon Sep 17 00:00:00 2001 From: Dan Calavrezo <195309321+dcalavrezo-qorix@users.noreply.github.com> Date: Tue, 23 Jun 2026 14:06:55 +0300 Subject: [PATCH 2/2] coverage: fix Added new flags - --build_tag_filters=-miri,-loom prevents Bazel from even building targets tagged miri or loom. - --test_tag_filters=-miri,-loom prevents Bazel from selecting/running tests with those tags. - this keeps the coverage job focused on normal Rust tests Signed-off-by: Dan Calavrezo <195309321+dcalavrezo-qorix@users.noreply.github.com> --- .github/workflows/code_coverage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/code_coverage.yml b/.github/workflows/code_coverage.yml index aa7f08507..8d75225e5 100644 --- a/.github/workflows/code_coverage.yml +++ b/.github/workflows/code_coverage.yml @@ -37,7 +37,7 @@ jobs: with: bazel-test-targets: "//score/..." bazel-test-config-flags: "--config=x86_64-linux --config=ferrocene-coverage --lockfile_mode=error --test_lang_filters=-cc,-miri" - bazel-test-args: "--test_output=errors --nocache_test_results" + bazel-test-args: "--test_output=errors --nocache_test_results --build_tag_filters=-miri,-loom --test_tag_filters=-miri,-loom" coverage-target: "//:rust_coverage" coverage-artifact-name: "rust-coverage-html" min-coverage: 93