diff --git a/packaging/alpine/local/lavinmq/scripts/runtime-test.sh b/packaging/alpine/local/lavinmq/scripts/runtime-test.sh index ef930b0..22d7a44 100755 --- a/packaging/alpine/local/lavinmq/scripts/runtime-test.sh +++ b/packaging/alpine/local/lavinmq/scripts/runtime-test.sh @@ -3,6 +3,26 @@ set -euo pipefail apk add lavinmq lavinmq-doc lavinmq-openrc +diagnose_lavinmq() { + rc-service lavinmq status || true + ps -ef | grep -E '[l]avinmq|start-stop' || true + tail -120 /var/log/lavinmq/lavinmq.log || true +} + +wait_for_lavinmq() { + local attempt + + for attempt in $(seq 1 30); do + if lavinmqctl --silent status >/dev/null 2>&1; then + return 0 + fi + sleep 1 + done + + diagnose_lavinmq >&2 + return 1 +} + test -x /usr/bin/lavinmq test -x /usr/bin/lavinmqctl test -x /usr/bin/lavinmqperf @@ -21,6 +41,7 @@ rc-update add lavinmq default || true test -L /etc/runlevels/default/lavinmq rc-service lavinmq start rc-service lavinmq status +wait_for_lavinmq test -f /var/lib/lavinmq/.lock rc-service lavinmq stop @@ -28,5 +49,6 @@ chown root:root /var/lib/lavinmq/.lock chmod 0600 /var/lib/lavinmq/.lock rc-service lavinmq start rc-service lavinmq status +wait_for_lavinmq test "$(stat -c '%U:%G %a' /var/lib/lavinmq/.lock)" = "lavinmq:lavinmq 640" rc-service lavinmq stop