1*29a8f989SAndrew Jeffery#!/usr/bin/sh 2*29a8f989SAndrew Jeffery 3*29a8f989SAndrew Jefferyset -eux 4*29a8f989SAndrew Jeffery 5*29a8f989SAndrew JefferySOCAT="$1" 6*29a8f989SAndrew JefferySERVER="$2" 7*29a8f989SAndrew Jeffery 8*29a8f989SAndrew Jeffery# Meet DBus bus and path name constraints, append own PID for parallel runs 9*29a8f989SAndrew JefferyTEST_NAME="$(basename "$0" | tr '-' '_')"_${$} 10*29a8f989SAndrew JefferyTEST_DIR="$(mktemp --tmpdir --directory "${TEST_NAME}.XXXXXX")" 11*29a8f989SAndrew JefferyPTYS_PID="" 12*29a8f989SAndrew JefferySERVER_PID="" 13*29a8f989SAndrew Jeffery 14*29a8f989SAndrew Jefferycd "$TEST_DIR" 15*29a8f989SAndrew Jeffery 16*29a8f989SAndrew Jefferycleanup() 17*29a8f989SAndrew Jeffery{ 18*29a8f989SAndrew Jeffery [ -z "$SERVER_PID" ] || kill -s INT "$SERVER_PID" 19*29a8f989SAndrew Jeffery [ -z "$PTYS_PID" ] || kill "$PTYS_PID" 20*29a8f989SAndrew Jeffery wait 21*29a8f989SAndrew Jeffery cd - 22*29a8f989SAndrew Jeffery rm -rf "$TEST_DIR" 23*29a8f989SAndrew Jeffery} 24*29a8f989SAndrew Jeffery 25*29a8f989SAndrew Jefferytrap cleanup EXIT 26*29a8f989SAndrew Jeffery 27*29a8f989SAndrew JefferyTEST_CONF="${TEST_NAME}.conf" 28*29a8f989SAndrew JefferyTEST_LOG="${TEST_NAME}.log" 29*29a8f989SAndrew Jeffery 30*29a8f989SAndrew Jefferycat <<EOF > "$TEST_CONF" 31*29a8f989SAndrew Jefferyactive-console = $TEST_NAME 32*29a8f989SAndrew Jeffery[$TEST_NAME] 33*29a8f989SAndrew Jefferylogfile = $TEST_LOG 34*29a8f989SAndrew Jefferyconsole-id = $TEST_NAME 35*29a8f989SAndrew JefferyEOF 36*29a8f989SAndrew Jeffery 37*29a8f989SAndrew Jeffery"$SOCAT" -u PTY,raw,echo=0,link=remote PTY,raw,echo=0,wait-slave,link=local & 38*29a8f989SAndrew JefferyPTYS_PID="$!" 39*29a8f989SAndrew Jefferywhile ! [ -e remote ] || ! [ -e local ]; do sleep 1; done 40*29a8f989SAndrew Jeffery 41*29a8f989SAndrew Jeffery"$SERVER" --config "$TEST_CONF" "$(realpath local)" & 42*29a8f989SAndrew JefferySERVER_PID="$!" 43*29a8f989SAndrew Jefferywhile ! busctl status --user xyz.openbmc_project.Console."${TEST_NAME}"; do sleep 1; done 44*29a8f989SAndrew Jeffery 45*29a8f989SAndrew Jefferyecho console-should-log-to-file > remote 46*29a8f989SAndrew Jefferysleep 1 47*29a8f989SAndrew Jefferygrep -LF console-should-log-to-file "$TEST_LOG" 48