ci(smoke): fix the mpd / hardware / leak tiers so they actually run

The first run went green but the best-effort tiers silently didn't exercise
anything:

- state.sh: the mpd `audio_output { ... }` block was on one line, which mpd
  rejects ("Unknown tokens after '{'"), so mpd never started and the mpd
  sub-tier (the #5183 empty-queue repro) skipped. Split the block across lines.
  Also move teardown into a cleanup() with `|| true` so a dead-pid kill under
  `set -e` no longer makes the step exit 1.
- hardware.sh: umockdev-run's LD_PRELOAD lands ahead of the linked-in ASan
  runtime, so ASan aborted before main() ("ASan runtime does not come first")
  and waybar never started -- the backlight/slider (#5179) path wasn't tested.
  Set verify_asan_link_order=0 so the instrumented binary runs under the preload.
- leakcheck.sh: abort_on_error=1 turned LSan's exit report into a core dump;
  force abort_on_error=0 for this report-only tier.
- lib.sh: assert_clean now also flags "ASan runtime does not come first" so a
  future preload/link-order regression fails loudly instead of passing.
This commit is contained in:
Alex
2026-07-05 22:39:35 +02:00
parent 9a10949938
commit 74f0d3393a
4 changed files with 24 additions and 6 deletions
+15 -5
View File
@@ -15,14 +15,21 @@ DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# shellcheck source=lib.sh
source "$DIR/lib.sh"
smoke::setup
smoke::start_compositor
trap 'smoke::stop; [ -n "${MPD_PID:-}" ] && kill "$MPD_PID" 2>/dev/null; [ -n "${PA_STARTED:-}" ] && pulseaudio --kill 2>/dev/null; true' EXIT
fail=0
MPD_PID=""
PA_STARTED=""
cleanup() {
smoke::stop
[ -n "$MPD_PID" ] && kill "$MPD_PID" 2>/dev/null || true
[ -n "$PA_STARTED" ] && pulseaudio --kill 2>/dev/null || true
return 0
}
smoke::setup
smoke::start_compositor
trap cleanup EXIT
# ---------------------------------------------------------------- mpd -----
mpd_tier() {
if ! command -v mpd >/dev/null || ! command -v mpc >/dev/null; then
@@ -39,7 +46,10 @@ state_file "$d/state"
pid_file "$d/pid"
bind_to_address "127.0.0.1"
port "6600"
audio_output { type "null" name "null" }
audio_output {
type "null"
name "null"
}
EOF
mpd --no-daemon "$conf" >/tmp/mpd.log 2>&1 &
MPD_PID=$!