From 9f50944f0b3b2a5b203bf38f5a3128b899719edb Mon Sep 17 00:00:00 2001 From: Shamitha Shashidhara Date: Mon, 1 Sep 2025 12:29:35 +0530 Subject: [PATCH] Add Valgrind support and integrate memory checks into CI - Updated Dockerfile to include Valgrind installation - Enhanced code-coverage.py to run tests with Valgrind - Uploaded coverage reports as artifacts on code-coverage.yml Change-Id: I8be2777baa59dceccfb130344e5a8aaf24939d97 --- .ci/code_coverage.py | 1 + .github/workflows/code-coverage.yml | 9 +++++++++ docker/Dockerfile.dev | 1 + 3 files changed, 11 insertions(+) diff --git a/.ci/code_coverage.py b/.ci/code_coverage.py index 68949407fe5..69650a1c3c9 100644 --- a/.ci/code_coverage.py +++ b/.ci/code_coverage.py @@ -23,6 +23,7 @@ def build_with_cmake(): def run_tests(): subprocess.run(["ctest", "--test-dir", "cmake-build-unit-tests", "-j4", "--output-on-failure"], check=True) + subprocess.run(["ctest", "--test-dir", "cmake-build-unit-tests","-T", "memcheck", "-j4", "--output-on-failure"], check=True) def generate_coverage(): # Capture coverage data diff --git a/.github/workflows/code-coverage.yml b/.github/workflows/code-coverage.yml index c159a10b191..dcba02eac06 100644 --- a/.github/workflows/code-coverage.yml +++ b/.github/workflows/code-coverage.yml @@ -67,6 +67,9 @@ jobs: mv line_coverage_badge.svg coverage_badges/ mv function_coverage_badge.svg coverage_badges/ zip -r coverage_badges.zip coverage_badges + mkdir memory-check + mv cmake-build-unit-tests/Testing memory-check + zip -r memory-check.zip memory-check - name: Upload code coverage artifact uses: actions/upload-artifact@v4 @@ -80,6 +83,12 @@ jobs: name: coverage_badges path: coverage_badges.zip + - name: Upload Memory Check log + uses: actions/upload-artifact@v4 + with: + name: memory-check + path: memory-check.zip + - name: Copy updated sccache out of Docker volume run: | mkdir -p sccache_backup diff --git a/docker/Dockerfile.dev b/docker/Dockerfile.dev index 52da978ecb1..ffa827c01ce 100644 --- a/docker/Dockerfile.dev +++ b/docker/Dockerfile.dev @@ -16,6 +16,7 @@ RUN for i in 1 2 3; do \ g++-11 \ lcov \ iputils-ping \ + valgrind \ && rm -rf /var/lib/apt/lists/* \ && break || { echo "Apt install failed, retrying ($i/3)..."; sleep 10; }; \ done