ci: use ASan/UBsan in bluetooth tests

Compile with sanitizers for the bluetooth tests, for better backtraces
on failures. Also produce backtraces via gdb.
This commit is contained in:
Pauli Virtanen 2026-05-09 14:05:58 +03:00 committed by Wim Taymans
parent ef35aa161b
commit db5cb6515a
3 changed files with 34 additions and 4 deletions

22
.gitlab/ci/core-backtrace.sh Executable file
View file

@ -0,0 +1,22 @@
#!/bin/sh
#
# core-backtrace.sh COREFILE...
#
# Print backtraces from core dump files
#
set -e
for f in "$@"; do
if [ ! -e "$f" ]; then
continue
fi
echo "#"
echo "# --- $f ---"
echo "#"
exe=$(gdb -q -c "$f" -ex 'info auxv' -ex quit | sed -n -e '/AT_EXECFN/ { s/^[^"]*"//; s/"$//; p; }')
if [ -f "$exe" ]; then
gdb -q "$exe" "$f" -ex 'thr a a bt full' -ex quit
else
gdb -q -c "$f" -ex 'thr a a bt full' -ex quit
fi
done

View file

@ -14,7 +14,7 @@ fi
git clone --depth 1 --revision "$BLUEZ_COMMIT" https://github.com/bluez/bluez.git /bluez-build
cd /bluez-build
./bootstrap
./configure --enable-tools --disable-obex
./configure --enable-tools --disable-obex --enable-asan --enable-ubsan --enable-debug
# shellcheck disable=SC2086
make $COMPILE_ARGS
cd /
@ -26,7 +26,7 @@ cp /bluez-build/tools/btmgmt /bluez/tools/
cp /bluez-build/src/bluetoothd /bluez/src/
cd /bluez
python3 -m pip wheel --no-deps "pytest-bluezenv==$PYTEST_BLUEZENV_VERSION"
python3 -m pip wheel --no-deps "$PYTEST_BLUEZENV_VERSION"
curl -L "$BZIMAGE_URL" -o bzImage
cd /