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..8d75225e5 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,8 +36,8 @@ 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-args: "--test_output=errors --nocache_test_results" + 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 --build_tag_filters=-miri,-loom --test_tag_filters=-miri,-loom" coverage-target: "//:rust_coverage" coverage-artifact-name: "rust-coverage-html" min-coverage: 93 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"], +)