Pass -- --keep-logs to reg-tests for ASAN matrix jobs so vtest logs are kept 
after execution.

Add a new "Show ASAN findings" step for ASAN builds:

scan preserved reg-test logs for Sanitizer reports
print matching INFO and LOG files in grouped output
fail the job when findings are detected
This improves visibility of memory-safety issues and prevents silent ASAN 
regressions in CI.
---
 .github/workflows/vtest.yml | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/vtest.yml b/.github/workflows/vtest.yml
index 5129cae3c..c82e3e5b9 100644
--- a/.github/workflows/vtest.yml
+++ b/.github/workflows/vtest.yml
@@ -139,7 +139,25 @@ jobs:
     - name: Run VTest for HAProxy ${{ steps.show-version.outputs.version }}
       id: vtest
       run: |
-        make reg-tests VTEST_PROGRAM=${{ github.workspace }}/vtest/vtest 
REGTESTS_TYPES=default,bug,devel
+        make reg-tests VTEST_PROGRAM=${{ github.workspace }}/vtest/vtest 
REGTESTS_TYPES=default,bug,devel ${{ case(contains(matrix.name, 'ASAN'), '-- 
--keep-logs', '') }}
+    - name: Show ASAN findings
+      if: ${{ contains(matrix.name, 'ASAN') }}
+      run: |
+        found=false
+        for folder in ${TMPDIR:-/tmp}/haregtests-*/vtc.*; do
+           if [ -d "$folder" ]; then
+             if grep -r Sanitizer $folder >/dev/null 2>&1; then
+                found=true
+                printf "::group::"
+                cat $folder/INFO
+                cat $folder/LOG
+                echo "::endgroup::"
+             fi
+           fi
+        done
+        if [ "$found" = true ]; then
+          exit 1;
+        fi
     - name: Show VTest results
       if: ${{ failure() && steps.vtest.outcome == 'failure' }}
       run: |
-- 
2.46.0.windows.1



Reply via email to