#!/usr/bin/env bash # Local test: mock ARDOPC + HyBBX ardop plugin (no Main circuit required). set -euo pipefail ROOT="$(cd "$(dirname "$0")/.." && pwd)" BUILD="${ROOT}/build" HYBBX="${BUILD}/src/hybbxd" MOCK_PORT=18515 TMPDIR="${ROOT}/local/test-ardop-$$" mkdir -p "${TMPDIR}" cleanup() { kill "${MOCK_PID:-}" 2>/dev/null || true kill "${CIRCUIT_PID:-}" 2>/dev/null || true kill "${HYBBX_PID:-}" 2>/dev/null || true rm -rf "${TMPDIR}" } trap cleanup EXIT if [[ ! -x "${HYBBX}" ]]; then echo "Build hybbx first: cmake --build build" >&2 exit 1 fi cat > "${TMPDIR}/hybbx.ini" </dev/null 2>&1 & CIRCUIT_PID=$! sleep 0.2 LOG="${TMPDIR}/hybbx.log" stdbuf -oL timeout 5 "${HYBBX}" -c "${TMPDIR}/hybbx.ini" >"${LOG}" 2>&1 & HYBBX_PID=$! sleep 3 kill "${HYBBX_PID}" 2>/dev/null || true wait "${HYBBX_PID}" 2>/dev/null || true kill "${CIRCUIT_PID}" 2>/dev/null || true grep -q "connected to external ARDOPC" "${LOG}" || { echo "FAIL: no ARDOPC connect log" >&2 cat "${LOG}" >&2 exit 1 } grep -q "host init sent" "${LOG}" || { echo "FAIL: no host init log" >&2 cat "${LOG}" >&2 exit 1 } grep -q "CB half-duplex profile" "${LOG}" || { echo "FAIL: no CB profile log" >&2 cat "${LOG}" >&2 exit 1 } echo "OK: ardop plugin local test passed" cat "${LOG}" | grep '\[ardop\]'