1#!/bin/sh23cd "${0%/*}"45export MPVD_TEST_ADDR="${MPVD_TEST_ADDR:-localhost}"6export MPVD_TEST_PORT="${MPVD_TEST_PORT:-6600}"78mkdir -p "${testdir:=${TMPDIR:-/tmp}/mpvd-tests}"9trap 'rm -rf ${testdir} ; kill $(jobs -p) 2>/dev/null' INT EXIT1011for test in *; do12 [ -e "${test}/commands" ] || continue13 printf "Running test case '%s': " "${test##*/}"1415 read -r fn < "${test}/song"16 sock="${testdir}/mpvsock"1718 mpv --quiet --input-ipc-server="${sock}" \19 --pause --loop inf "testdata/${fn}" >/dev/null &20 hy ../mpvd.hy -a "${MPVD_TEST_ADDR}" \21 -p "${MPVD_TEST_PORT}" "${sock}" &2223 ./wait_port.hy "${MPVD_TEST_ADDR}" "${MPVD_TEST_PORT}"2425 output="${testdir}/output"26 env -i HOST="${MPVD_TEST_ADDR}" PORT="${MPVD_TEST_PORT}" \27 PATH="$(pwd):${PATH}" sh "${test}/commands" > "${output}"2829 expected="${testdir}/expected"30 sed "/./!d" < "${test}/output" > "${expected}"3132 if ! cmp -s "${output}" "${expected}"; then33 printf "FAIL: Output didn't match.\n\n"34 diff -u "${output}" "${expected}"35 exit 136 fi3738 kill $(jobs -p); wait39 printf "OK.\n"40done