35 lines
730 B
Bash
Executable File
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"
|