1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
#!/usr/bin/make -f
export PYBUILD_TEST_ARGS=-k "not test_name and not test_loopback_ and not test_default_"
%:
dh $@ --buildsystem=pybuild
override_dh_auto_test:
@if echo " $(DEB_BUILD_OPTIONS) " | grep -q " nocheck "; then \
echo "I: DEB_BUILD_OPTIONS contains nocheck, skipping tests"; \
exit 0; \
fi; \
runtime_dir="$$(mktemp -d)"; \
export XDG_RUNTIME_DIR="$$runtime_dir"; \
pipewire_pid=""; \
pipewire_pulse_pid=""; \
cleanup() { \
pulseaudio --kill >/dev/null 2>&1 || true; \
[ -n "$$pipewire_pulse_pid" ] && kill "$$pipewire_pulse_pid" >/dev/null 2>&1 || true; \
[ -n "$$pipewire_pid" ] && kill "$$pipewire_pid" >/dev/null 2>&1 || true; \
rm -rf "$$runtime_dir"; \
}; \
trap cleanup EXIT INT TERM; \
if command -v pulseaudio >/dev/null 2>&1; then \
pulseaudio --daemonize=yes --exit-idle-time=-1 --log-target=stderr; \
elif command -v pipewire >/dev/null 2>&1 && command -v pipewire-pulse >/dev/null 2>&1; then \
pipewire >"$$runtime_dir/pipewire.log" 2>&1 & \
pipewire_pid="$$!"; \
pipewire-pulse >"$$runtime_dir/pipewire-pulse.log" 2>&1 & \
pipewire_pulse_pid="$$!"; \
else \
echo "E: no supported PulseAudio server available (need pulseaudio or pipewire-pulse)"; \
exit 1; \
fi; \
for _i in 1 2 3 4 5 6 7 8 9 10; do \
if [ -S "$$XDG_RUNTIME_DIR/pulse/native" ]; then \
break; \
fi; \
sleep 0.2; \
done; \
if [ ! -S "$$XDG_RUNTIME_DIR/pulse/native" ]; then \
echo "E: PulseAudio socket did not appear at $$XDG_RUNTIME_DIR/pulse/native"; \
[ -f "$$runtime_dir/pipewire.log" ] && tail -n 50 "$$runtime_dir/pipewire.log" || true; \
[ -f "$$runtime_dir/pipewire-pulse.log" ] && tail -n 50 "$$runtime_dir/pipewire-pulse.log" || true; \
exit 1; \
fi; \
echo "I: Running pybuild tests with private audio runtime at $$XDG_RUNTIME_DIR"; \
pybuild --test --test-pytest -i python{version}
|