Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 0 additions & 73 deletions scripts/external.test

This file was deleted.

2 changes: 1 addition & 1 deletion scripts/include.am
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@ endif
# app wasn't built.
dist_noinst_SCRIPTS+= scripts/sshclient.test

dist_noinst_SCRIPTS+= scripts/external.test scripts/fwd.test
dist_noinst_SCRIPTS+= scripts/fwd.test
EXTRA_DIST += scripts/fwd.test.expect
93 changes: 50 additions & 43 deletions scripts/sftp.test
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,11 @@
# sftp local test

no_pid=-1
server_pid=$no_pid
ready_file=`pwd`/wolfssh_sftp_ready$$
counter=0
server_pid="$no_pid"
ready_file="$PWD/wolfssh_sftp_ready$$"
nonblockingOnly=0

[ ! -x ./examples/sftpclient/wolfsftp ] && echo -e "\n\nwolfSFTP client doesn't exist" && exit 1
[ ! -x ./examples/sftpclient/wolfsftp ] && echo && echo "wolfSFTP client doesn't exist" && exit 1

WOLFSSH_OPTIONS=$(./apps/wolfssh-options) || {
echo "fail: could not run ./apps/wolfssh-options"
Expand All @@ -33,142 +32,150 @@ fi
#echo "ready file $ready_file"

create_port() {
# counted per server start, so a slow first start cannot eat the wait
# the later ones need
counter=0
while [ ! -s "$ready_file" ] && [ "$counter" -lt 20 ]; do
echo -e "waiting for ready file..."
echo "waiting for ready file..."
sleep 0.1
counter=$((counter+ 1))
done

if test -e $ready_file; then
echo -e "found ready file, starting client..."
# -s, not -e: the loop waits for the port to be written, and an empty
# file here means the wait ran out
if [ -s "$ready_file" ]; then
echo "found ready file, starting client..."

# get created port 0 ephemeral port
port=`cat $ready_file`
port=$(cat "$ready_file")
else
echo -e "NO ready file ending test..."
echo "NO ready file ending test..."
do_cleanup
exit 1
fi
}

remove_ready_file() {
if test -e $ready_file; then
echo -e "removing existing ready file"
rm $ready_file
if test -e "$ready_file"; then
echo "removing existing ready file"
rm "$ready_file"
fi
}

do_cleanup() {
echo "in cleanup"

if [ $server_pid != $no_pid ]
if [ "$server_pid" != "$no_pid" ]
then
echo "killing server"
kill -9 $server_pid
kill -9 "$server_pid"
fi
remove_ready_file
}

do_trap() {
echo "got trap"
do_cleanup
exit -1
exit 1
}

trap do_trap INT TERM

[ ! -x ./examples/sftpclient/wolfsftp ] && echo -e "\n\nClient doesn't exist" && exit 1

if [ $nonblockingOnly = 0 ]; then
if [ "$nonblockingOnly" = 0 ]; then
echo "Test basic connection"
./examples/echoserver/echoserver -1 -R $ready_file &
./examples/echoserver/echoserver -1 -R "$ready_file" &
server_pid=$!
create_port
echo "exit" | ./examples/sftpclient/wolfsftp -u jill -P upthehill -p $port
echo "exit" | ./examples/sftpclient/wolfsftp -u jill -P upthehill -p "$port"
RESULT=$?
remove_ready_file
if [ $RESULT -ne 0 ]; then
echo -e "\n\nfailed to connect"
echo
echo "failed to connect"
do_cleanup
exit 1
fi
fi

# Test non blocking connection
echo "Test non blocking connection"
./examples/echoserver/echoserver -N -1 -R $ready_file &
./examples/echoserver/echoserver -N -1 -R "$ready_file" &
server_pid=$!
create_port
echo "exit" | ./examples/sftpclient/wolfsftp -N -u jill -P upthehill -p $port
echo "exit" | ./examples/sftpclient/wolfsftp -N -u jill -P upthehill -p "$port"
RESULT=$?
remove_ready_file
if [ $RESULT -ne 0 ]; then
echo -e "\n\nfailed to connect"
echo
echo "failed to connect"
do_cleanup
exit 1
fi

# Test want write return from highwater callback
if [ $nonblockingOnly = 0 ]; then
if [ "$nonblockingOnly" = 0 ]; then
echo "Test want write return from highwater callback"
./examples/echoserver/echoserver -H -N -1 -R $ready_file &
./examples/echoserver/echoserver -H -N -1 -R "$ready_file" &
server_pid=$!
create_port
./examples/sftpclient/wolfsftp -N -u jill -P upthehill -p $port -g -r $PWD/README.md-2 -l $PWD/README.md
./examples/sftpclient/wolfsftp -N -u jill -P upthehill -p "$port" -g -r "$PWD/README.md-2" -l "$PWD/README.md"
RESULT=$?
remove_ready_file
rm -f $PWD/README.md-2
rm -f "$PWD/README.md-2"
if [ $RESULT -ne 0 ]; then
echo -e "\n\nfailed to connect"
echo
echo "failed to connect"
do_cleanup
exit 1
fi
fi

# Test of setting directory
if [ $nonblockingOnly = 0 ]; then
if [ "$nonblockingOnly" = 0 ]; then
echo "Test of setting directory"
PWD=`pwd`
./examples/echoserver/echoserver -d $PWD/examples -1 -R $ready_file &
./examples/echoserver/echoserver -d "$PWD/examples" -1 -R "$ready_file" &
server_pid=$!
create_port
echo "exit" | ./examples/sftpclient/wolfsftp -N -u jill -P upthehill -p $port
echo "exit" | ./examples/sftpclient/wolfsftp -N -u jill -P upthehill -p "$port"
RESULT=$?
remove_ready_file
if [ $RESULT -ne 0 ]; then
echo -e "\n\nfailed to connect"
echo
echo "failed to connect"
do_cleanup
exit 1
fi
fi

# Test SFTP status failure for non-existing file
if [ $nonblockingOnly = 0 ]; then
if [ "$nonblockingOnly" = 0 ]; then
echo "Test SFTP status failure for non-existing file"
./examples/echoserver/echoserver -N -1 -R $ready_file &
./examples/echoserver/echoserver -N -1 -R "$ready_file" &
server_pid=$!
create_port
./examples/sftpclient/wolfsftp -N -u jill -P upthehill -p $port -G -r $PWD/this_file_does_not_exist_12345.txt -l $PWD/test_output.txt > sftp_status_failure.log 2>&1
./examples/sftpclient/wolfsftp -N -u jill -P upthehill -p "$port" -G -r "$PWD/this_file_does_not_exist_12345.txt" -l "$PWD/test_output.txt" > sftp_status_failure.log 2>&1
RESULT=$?
grep "Unable to copy remote file" sftp_status_failure.log > /dev/null
grep -q "Unable to copy remote file" sftp_status_failure.log
RESULT_MSG=$?
remove_ready_file
rm -f sftp_status_failure.log
rm -f $PWD/test_output.txt
rm -f "$PWD/test_output.txt"
if [ $RESULT -eq 0 ]; then
echo -e "\n\nERROR: Should have failed for non-existing file"
echo
echo "ERROR: Should have failed for non-existing file"
do_cleanup
exit 1
fi
if [ $RESULT_MSG -ne 0 ]; then
echo -e "\n\nERROR: Unexpected failure path while testing missing remote file"
echo
echo "ERROR: Unexpected failure path while testing missing remote file"
do_cleanup
exit 1
fi
echo "Successfully received failure status packet"
fi

echo -e "\nALL Tests Passed"
echo
echo "ALL Tests Passed"

exit 0

Loading