mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2026-05-12 23:50:35 -04:00
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:
parent
ef35aa161b
commit
db5cb6515a
3 changed files with 34 additions and 4 deletions
|
|
@ -18,7 +18,7 @@ stages:
|
|||
variables:
|
||||
FDO_UPSTREAM_REPO: 'pipewire/pipewire'
|
||||
BLUEZ_COMMIT: '7cd27f4f66aa88194fbc1565bc13f24405acacd8'
|
||||
PYTEST_BLUEZENV_VERSION: '0.1.2'
|
||||
PYTEST_BLUEZENV_VERSION: 'pytest-bluezenv==0.1.4'
|
||||
BLUEZENV_BZIMAGE: 'https://github.com/pv/bluez-test-functional-kernel/releases/download/2026-05-08.1/bzImage-v7.0-cfg3ed20edd'
|
||||
|
||||
# ci-templates as of Mar 25th 2024
|
||||
|
|
@ -41,7 +41,7 @@ include:
|
|||
.fedora:
|
||||
variables:
|
||||
# Update this tag when you want to trigger a rebuild
|
||||
FDO_DISTRIBUTION_TAG: '2026-05-09.0'
|
||||
FDO_DISTRIBUTION_TAG: '2026-05-09.8'
|
||||
FDO_DISTRIBUTION_VERSION: '44'
|
||||
FDO_DISTRIBUTION_PACKAGES: >-
|
||||
alsa-lib-devel
|
||||
|
|
@ -60,6 +60,7 @@ include:
|
|||
findutils
|
||||
gcc
|
||||
gcc-c++
|
||||
gdb
|
||||
git
|
||||
glib-devel
|
||||
graphviz
|
||||
|
|
@ -490,13 +491,20 @@ bluez_tests:
|
|||
-Dsnap=disabled
|
||||
-Droc=disabled
|
||||
-Dlibcamera=disabled
|
||||
-Db_sanitize=address,undefined
|
||||
-Ddebug=true
|
||||
-Doptimization=g
|
||||
before_script:
|
||||
- !reference [.build_on_fedora, before_script]
|
||||
- python3 -m pip install /bluez/pytest_bluezenv-*.whl
|
||||
script:
|
||||
- meson setup "$BUILD_DIR" --prefix="$PREFIX" $MESON_OPTIONS
|
||||
- meson compile -C "$BUILD_DIR" $COMPILE_ARGS
|
||||
- export UBSAN_OPTIONS=abort_on_error=1:print_summary=1:print_stacktrace=1
|
||||
- export ASAN_OPTIONS=abort_on_error=1:print_summary=1:detect_leaks=1:leak_check_at_exit=0
|
||||
- meson devenv -C "$BUILD_DIR" -w . python3 -m pytest test --kernel /bluez/bzImage* --bluez-src-dir /bluez -ra -vvv --reruns 1 --vm-timeout 30
|
||||
after_script:
|
||||
- ./.gitlab/ci/core-backtrace.sh *core
|
||||
|
||||
build_on_alpine:
|
||||
extends:
|
||||
|
|
|
|||
22
.gitlab/ci/core-backtrace.sh
Executable file
22
.gitlab/ci/core-backtrace.sh
Executable 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
|
||||
|
|
@ -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 /
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue