97 lines
1.8 KiB
Text
97 lines
1.8 KiB
Text
|
#!/bin/bash
|
||
|
|
||
|
if test ! -x ./examples/sftpclient/wolfsftp
|
||
|
then
|
||
|
echo "This test requires the wolfSFTP client."
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
if test ! -x ./examples/echoserver/echoserver
|
||
|
then
|
||
|
echo "This test requires the wolfSSH echoserver."
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
SERVER_PID=0
|
||
|
READY_FILE=$(pwd)/wolfssh_sftp_ready$$
|
||
|
READY_COUNTER=0
|
||
|
|
||
|
|
||
|
wait_for_server() {
|
||
|
while [ ! -s "$READY_FILE" ] && [ "$READY_COUNTER" -lt 20 ]; do
|
||
|
sleep 0.1
|
||
|
READY_COUNTER=$((READY_COUNTER+ 1))
|
||
|
done
|
||
|
|
||
|
if test -e "$READY_FILE"
|
||
|
then
|
||
|
# get created port 0 ephemeral port
|
||
|
PORT=$(cat "$READY_FILE")
|
||
|
else
|
||
|
echo "Echoserver never started."
|
||
|
do_cleanup
|
||
|
exit 1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
|
||
|
do_cleanup() {
|
||
|
rm -f "$READY_FILE" sample1.txt sample2.txt sample1-copy.txt sample2-copy.txt
|
||
|
if test $SERVER_PID != 0
|
||
|
then
|
||
|
kill -9 $SERVER_PID
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
|
||
|
do_trap() {
|
||
|
do_cleanup
|
||
|
exit 1
|
||
|
}
|
||
|
|
||
|
|
||
|
trap do_trap INT TERM
|
||
|
|
||
|
|
||
|
./examples/echoserver/echoserver -d "$(pwd)" -R "$READY_FILE" >/dev/null 2>&1 &
|
||
|
|
||
|
SERVER_PID=$!
|
||
|
wait_for_server
|
||
|
|
||
|
echo "This is some sample test to make a file to copy back and forth." > sample1.txt
|
||
|
echo "This is a different set of sample text to copy back and forth." > sample2.txt
|
||
|
|
||
|
# Get test.
|
||
|
if ! ./examples/sftpclient/wolfsftp -u jill -P upthehill -p "$PORT" \
|
||
|
-G -l sample1-copy.txt -r sample1.txt
|
||
|
then
|
||
|
echo "Unable to get file."
|
||
|
do_cleanup
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
# Put test.
|
||
|
if ! ./examples/sftpclient/wolfsftp -u jill -P upthehill -p "$PORT" \
|
||
|
-g -l sample2.txt -r sample2-copy.txt
|
||
|
then
|
||
|
echo "Unable to put file."
|
||
|
do_cleanup
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
if ! diff sample1.txt sample1-copy.txt >/dev/null
|
||
|
then
|
||
|
echo "Get test files do not match."
|
||
|
do_cleanup
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
if ! diff sample2.txt sample2-copy.txt >/dev/null
|
||
|
then
|
||
|
echo "Put test files do not match."
|
||
|
do_cleanup
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
do_cleanup
|