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