Golang_HomeWork/hw11_telnet_client/test.sh

35 lines
730 B
Bash
Executable File

#!/usr/bin/env bash
set -xeuo pipefail
go build -o go-telnet
(echo -e "Hello\nFrom\nNC\n" && cat 2>/dev/null) | nc -l localhost 4242 >/tmp/nc.out &
NC_PID=$!
sleep 1
(echo -e "I\nam\nTELNET client\n" && cat 2>/dev/null) | ./go-telnet --timeout=5s localhost 4242 >/tmp/telnet.out &
TL_PID=$!
sleep 5
kill ${TL_PID} 2>/dev/null || true
kill ${NC_PID} 2>/dev/null || true
function fileEquals() {
local fileData
fileData=$(cat "$1")
[ "${fileData}" = "${2}" ] || (echo -e "unexpected output, $1:\n${fileData}" && exit 1)
}
expected_nc_out='I
am
TELNET client'
fileEquals /tmp/nc.out "${expected_nc_out}"
expected_telnet_out='Hello
From
NC'
fileEquals /tmp/telnet.out "${expected_telnet_out}"
rm -f go-telnet
echo "PASS"