IXWebSocket/ws/test_ws_proxy.sh

40 lines
1.1 KiB
Bash
Raw Permalink Normal View History

#!/bin/sh
# This test requires cobra to be available
which cobra > /dev/null || {
echo cobra is not installed on this machine.
exit 0
}
# Handle Ctrl-C by killing all sub-processing AND exiting
trap cleanup INT
function cleanup {
exit_code=${1:-1}
echo "Killing all servers (ws and cobra)"
echo
kill `cat /tmp/pidfile.proxy` &>/dev/null
kill `cat /tmp/pidfile.echo_server` &>/dev/null
kill `cat /tmp/pidfile.cobra` &>/dev/null
kill `cat /tmp/pidfile.connect.echo` &>/dev/null
kill `cat /tmp/pidfile.connect.cobra` &>/dev/null
exit ${exit_code}
}
ws proxy_server --pidfile /tmp/pidfile.proxy --config_path proxyConfig.json &
ws echo_server --pidfile /tmp/pidfile.echo_server --port 8009 &
cobra -v run --pidfile /tmp/pidfile.cobra --port 5678 &
# Wait for the servers to be up
sleep 1
# unbuffer comes with expect (written in tcl)
echo 'hello' | unbuffer ws connect --pidfile /tmp/pidfile.connect.echo ws://echo.localhost:8008 &
echo 'hello' | unbuffer ws connect --pidfile /tmp/pidfile.connect.cobra ws://cobra.localhost:8008 &
# Wait
sleep 2
cleanup