ci: add address and undefined sanitizer tasks

The current code is clean with these two sanitizers, and we would
like to keep it that way by running the checks for any new code.

The signal of "passed with asan, but not ubsan" (or vice versa) is
not that useful in practice, so it is tempting to run both santizers
in a single task, but it seems to take forever, so tentatively let's
try having two separate ones.

Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Junio C Hamano 2022-10-20 09:20:59 -07:00
Родитель bbe21b64a0
Коммит 1c0962c0c4
2 изменённых файлов: 12 добавлений и 0 удалений

6
.github/workflows/main.yml поставляемый
Просмотреть файл

@ -251,6 +251,12 @@ jobs:
- jobname: linux-leaks
cc: gcc
pool: ubuntu-latest
- jobname: linux-asan
cc: gcc
pool: ubuntu-latest
- jobname: linux-ubsan
cc: gcc
pool: ubuntu-latest
env:
CC: ${{matrix.vector.cc}}
CC_PACKAGE: ${{matrix.vector.cc_package}}

Просмотреть файл

@ -278,6 +278,12 @@ linux-leaks)
export GIT_TEST_PASSING_SANITIZE_LEAK=true
export GIT_TEST_SANITIZE_LEAK_LOG=true
;;
linux-asan)
export SANITIZE=address
;;
linux-ubsan)
export SANITIZE=undefined
;;
esac
MAKEFLAGS="$MAKEFLAGS CC=${CC:-cc}"