public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
From: Alexey <alexey.kodanev@oracle.com>
To: Zeng Linggang <zenglg.jy@cn.fujitsu.com>
Cc: ltp-list <ltp-list@lists.sourceforge.net>
Subject: Re: [LTP] [PATCH 1/2] network ftp: some cleanup
Date: Thu, 31 Jul 2014 15:55:06 +0400	[thread overview]
Message-ID: <53DA2E9A.5030902@oracle.com> (raw)
In-Reply-To: <1406634124.3928.1.camel@G08JYZSD130126>

Hi Zeng!
On 07/29/2014 03:42 PM, Zeng Linggang wrote:
> * Move do_setup and do_cleanup into ftp_setup.
>
> * Delete ftp02_s1 and add do_test function for it.
>
> * Delete ftp_set_passwd and ftp_setup_vsftp_conf, since they are not be used.
>
> * Use test.sh instead of net_cmdlib.sh
>
> * Define local exists function instead of which in cmdlib.sh
>
> * Abandon trap and use tst_exit.
>
> * Make the test like:
> 	(set TCID TST_TOTAL ...)
> 	setup
> 	do_test
> 	check_result
> 	tst_exit
>
> * Some cleanup.
>
> Signed-off-by: Zeng Linggang <zenglg.jy@cn.fujitsu.com>
> ---
>   testcases/network/tcp_cmds/ftp/ftp02               | 100 +++++++-----
>   testcases/network/tcp_cmds/ftp/ftp02_s1            |  71 ---------
>   testcases/network/tcp_cmds/ftp/ftp03               | 177 ++++++++-------------
>   testcases/network/tcp_cmds/ftp/ftp04               | 109 ++++++-------
>   testcases/network/tcp_cmds/ftp/ftp05               | 149 ++++++++---------
>   testcases/network/tcp_cmds/ftp/ftp_set_passwd      |  28 ----
>   testcases/network/tcp_cmds/ftp/ftp_setup           |  82 ++++++++++
>   .../network/tcp_cmds/ftp/ftp_setup_vsftp_conf      |   5 -
>   8 files changed, 320 insertions(+), 401 deletions(-)
>   delete mode 100755 testcases/network/tcp_cmds/ftp/ftp02_s1
>   delete mode 100755 testcases/network/tcp_cmds/ftp/ftp_set_passwd
>   create mode 100644 testcases/network/tcp_cmds/ftp/ftp_setup
>   delete mode 100755 testcases/network/tcp_cmds/ftp/ftp_setup_vsftp_conf
>
> diff --git a/testcases/network/tcp_cmds/ftp/ftp02 b/testcases/network/tcp_cmds/ftp/ftp02
> index 6d6e021..a86319f 100755
> --- a/testcases/network/tcp_cmds/ftp/ftp02
> +++ b/testcases/network/tcp_cmds/ftp/ftp02
> @@ -28,59 +28,73 @@
>   #  NOTE:
>   #       This version is intended for EAL certification, it will need modification
>   #       to conform with LTP standards in the offical LTP tree.
> +#
> +# DESCRIPTION:
> +#	Create Test User
> +#	Make sure test user cannont log in with invalid password
> +#	Cleanup Test User from system
> +#	Exit with exit code of script called upon
> +#
>   
> -#-----------------------------------------------------------------------
> -# FUNCTION:  do_setup
> -#-----------------------------------------------------------------------
> -
> -do_setup()
> +setup()
>   {
> +	exists expect ftp useradd userdel
We don't need "exists()" anymore, use tst_check_cmd() from test.sh instead.

> +	export TEST_USER="ftpuser2"
> +	CONNECTION_FAILED="Connection failed; test FAILED"
> +	EXPECTED="Login failed as expected; test PASSED"
> +	UNEXPECTED="Login succeeded unexpectedly; test FAILED"
> +}
>   
> -    export RHOST="localhost"
> -    export TEST_USER="ftpuser2"
> -    export TEST_USER_PASSWD="eal"
> -    export TEST_USER_ENCRYPTED_PASSWD="42VmxaOByKwlA"
> -    export TEST_USER_HOMEDIR="/home/$TEST_USER"
> -
> -    # erase user if he may exist, so we can have a clean env
> -    TCtmp="/home/$TEST_USER"
> -
> -    tst_setup
> +do_test()
> +{
> +	set PASSWD "invaild_password?!!"
>   
> -    exists expect ftp ftp02_s1 useradd userdel
> +	set timeout 90
>   
> -    userdel $TEST_USER
> -    sleep 1
> +	expect -c "
> +		#ftp to host
> +		spawn ftp $RHOST
> +		sleep 1
> +		# Check if connection succeeded.
> +		expect {
> +			\"Name\" {}
> +			timeout {send_user \"\n$CONNECTION_FAILED\n\";exit 1}
> +		}
>   
> -    if ! useradd -m -p $TEST_USER_ENCRYPTED_PASSWD $TEST_USER; then
> -        end_testcase "Could not add test user $TEST_USER to system $RHOST."
> -    fi
> +		send \"$RUSER\r\"
> +		sleep 1
> +		expect -re \"Password:\"
> +		send \"$PASSWD\r\"
> +		sleep 1
>   
> -    trap do_cleanup EXIT
> +		expect {
> +			# 530 - Login failed
> +			\"530\" {send_user \"$EXPECTED\n\";exit 0}
> +			# 230 - Login successful
> +			\"230\" {send_user \"$UNEXPECTED\n\"; exit 1}
> +		}
>   
> +		expect \"ftp>\"
> +		send \"exit\r\"
> +	"
>   }
>   
> -#-----------------------------------------------------------------------
> -# FUNCTION:  do_cleanup
> -#-----------------------------------------------------------------------
> +TCID="$0"
> +TST_TOTAL=1
>   
> -do_cleanup()
> -{
> -    userdel $TEST_USER
> -    tst_cleanup
> -}
> -
> -#-----------------------------------------------------------------------
> -# FUNCTION:  MAIN
> -#
> -# DESCRIPTION: Create Test User
> -#              Call upon script to make sure test user cannont log in with invalid password
> -#	       Cleanup Test User from system
> -#              Exit with exit code of script called upon
> -#-----------------------------------------------------------------------
> -. net_cmdlib.sh
> +. test.sh
> +. ftp_setup
>   
> -read_opts $*
> +setup
>   do_setup
> -ftp02_s1 || end_testcase "Testcase failed."
> -end_testcase
> +TST_CLEANUP=do_cleanup
> +
> +do_test
> +ret=$?
> +if [ $ret -ne 0 ]; then
> +	tst_resm TFAIL "Test $TCID FAIL"
> +else
> +	tst_resm TPASS "Test $TCID PASS"
> +fi
> +
> +tst_exit
> diff --git a/testcases/network/tcp_cmds/ftp/ftp02_s1 b/testcases/network/tcp_cmds/ftp/ftp02_s1
> deleted file mode 100755
> index 18b08da..0000000
> --- a/testcases/network/tcp_cmds/ftp/ftp02_s1
> +++ /dev/null
> @@ -1,71 +0,0 @@
> -#! /usr/bin/expect -f
> -#*********************************************************************
> -#   Copyright (c) International Business Machines  Corp., 2003, 2005
> -#
> -#   This program is free software;  you can redistribute it and/or modify
> -#   it under the terms of the GNU General Public License as published by
> -#   the Free Software Foundation; either version 2 of the License, or
> -#   (at your option) any later version.
> -#
> -#   This program is distributed in the hope that it will be useful,
> -#   but WITHOUT ANY WARRANTY;  without even the implied warranty of
> -#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
> -#   the GNU General Public License for more details.
> -#
> -#   You should have received a copy of the GNU General Public License
> -#   along with this program;  if not, write to the Free Software
> -#   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
> -#
> -#
> -#
> -#  FILE   : ftp
> -#
> -#  PURPOSE: Test to see if ftp rejects a user with an invalid password
> -#
> -#  SETUP: The program `/usr/bin/expect' MUST be installed.
> -#
> -#  HISTORY:
> -# 	03/04/03 Jerone Young (jeroney@us.ibm.com)
> -#       09/21/05 Kris Wilson (krisw@us.ibm.com) Check for connection failure.
> -#                (If WS system, no vsftpd; connection will fail.)
> -
> -set RHOST $env(RHOST)
> -set TEST_USER $env(TEST_USER)
> -set TEST_USER_PASSWD $env(TEST_USER_PASSWD)
> -set TEST_USER_HOMEDIR $env(TEST_USER_HOMEDIR)
> -
> -#RUSER
> -set RUSER $TEST_USER
> -
> -#set PASSWD to be an invalid Password
> -set PASSWD "invaild_password?!!"
> -
> -set timeout 90
> -
> -#ftp to host
> -spawn ftp $RHOST
> -sleep 1
> -# Check if connection succeeded.
> -expect {
> -    "Name" {}
> -    timeout {send_user "\nConnection failed; test FAILED\n";exit 1}
> -}
> -
> -send "$RUSER\r"
> -sleep 1
> -expect -re "Password:"
> -send "$PASSWD\r"
> -sleep 1
> -
> -expect {
> -    # 530 - Login failed
> -    "530" {send_user "Login failed as expected; test PASSED\n"}
> -    # 230 - Login successful
> -    "230" {send_user "Login succeeded unexpectedly; test FAILED\n"; exit 1}
> -}
> -
> -expect "ftp>"
> -send "exit\r"
> -
> -send_user "\nTest Successful\n\n"
> -exit 0
> diff --git a/testcases/network/tcp_cmds/ftp/ftp03 b/testcases/network/tcp_cmds/ftp/ftp03
> index a99a1a0..13e5273 100755
> --- a/testcases/network/tcp_cmds/ftp/ftp03
> +++ b/testcases/network/tcp_cmds/ftp/ftp03
> @@ -31,130 +31,77 @@
>   #	This version is intended for EAL certification, it will need modification
>   #	to conform with LTP standards in the offical LTP tree.
>   
> -#-----------------------------------------------------------------------
> -# FUNCTION:  do_setup
> -#-----------------------------------------------------------------------
> -
> -do_setup()
> +setup()
>   {
> -
> -    RHOST="localhost"
> -    TEST_USER="ftpuser1"
> -    TCtmp=/home/$TEST_USER
> -    TEST_USER_PASSWD="eal"
> -    TEST_USER_ENCRYPTED_PASSWD="42VmxaOByKwlA"
> -    TEST_USER_HOMEDIR="/home/$TEST_USER"
> -    VSFTP_CONF=
> -
> -    tst_setup
> -
> -    exists ftp useradd userdel vftpd
> -
> -    for vsftp_conf in /etc/vsftpd /etc; do
> -
> -        if [ -r "$vsftp_confdir/vsftp.conf" ]; then
> -            VSFTP_CONF="$vsftp_confdir/vsftp.conf"
> -            break
> -        fi
> -
> -    done
> -    if [ ! -r "$VSFTP_CONF" ] ; then
> -        end_testcase "vsftpd.conf not found."
> -    fi
> -    LOCAL_ENABLE=$(awk -F= '/^local_enable=/ {print $2}' "$VSFTP_CONF")
> -
> -    [ "$LOCAL_ENABLE" != "YES" ] && LOCAL_ENABLE="NO"
> -
> -    userdel $TEST_USER
> -    sleep 1
> -
> -    if ! useradd -m -p $TEST_USER_ENCRYPTED_PASSWD $TEST_USER; then
> -        end_testcase "Could not add test user $TEST_USER on system $RHOST."
> -    fi
> -
> -    trap do_cleanup QUIT
> -
> -    # create users home diretory (SLES 8 does not do this, even when specified
> -    # in adduser)
> -    USER_UID=$(id -u $TEST_USER)
> -    USER_GID=$(id -g $TEST_USER)
> -    mkdir -p "$TEST_USER_HOMEDIR"
> -    chown -R $USER_UID:$USER_GID $TEST_USER_HOMEDIR
> -
> +	exists ftp useradd userdel vsftpd
> +	export TEST_USER="ftpuser3"
> +	FAIL_530="==> TEST : FAIL (ftp rejected login attempt)"
> +	PASS_230="==> TEST : PASS (ftp allowed login attempt)"
> +	FAIL_230="==> TEST : FAIL (ftp allowed login attempt)"
> +	PASS_500="==> TEST : PASS (ftp rejected login attempt)"
> +	PASS_530="==> TEST : PASS (ftp rejected login attempt)"
>   }
>   
> -#-----------------------------------------------------------------------
> -# FUNCTION:  do_cleanup
> -#-----------------------------------------------------------------------
> -
> -do_cleanup()
> +do_test()
>   {
> -    userdel $TEST_USER
> -    tst_cleanup
> -}
> -
> -#-----------------------------------------------------------------------
> -# FUNCTION:  do_test
> -#
> -# DESCRIPTION: The test user will ftp in and create a directory in his home directory on the remote host.
> -#              The directory is then checked on the remote hosts to see if it is owned
> -#	       by the test user.
> -#-----------------------------------------------------------------------
> -
> -do_test(){
> -    tst_resm TINFO "TEST: Ftp into a remote host as a local user (other than root), LOCAL_ENABLE=$LOCAL_ENABLE"
> +	echo "TEST: Ftp into a remote host as a local user (other than root),"
> +	echo "LOCAL_ENABLE=$LOCAL_ENABLE"
>   
> -    if [ "$LOCAL_ENABLE" = "YES" ]; then
> +	if [ "$LOCAL_ENABLE" = "YES" ]; then
>   	expect -c "
> -            spawn ftp $RHOST
> -            sleep 1
> -            expect -re \": \"
> -            send \"$TEST_USER\r\"
> -            expect -re \"Password:\"
> -            send \"$TEST_USER_PASSWD\r\"
> -            expect {
> -                # 530 - Login failed
> -                \"530\" {send_user \"==> TEST \#$TEST : FAIL (ftp rejected login attempt)\n\";exit 1}
> -                # 230 - Login successful
> -                \"230\" {send_user \"==> TEST \#$TEST : PASS (ftp allowed login attempt)\n\";exit 0}
> -            }
> -            expect \"ftp> \"
> -            send \"quit\r\"
> +		spawn ftp $RHOST
> +		sleep 1
> +		expect -re \": \"
> +		send \"$TEST_USER\r\"
> +		expect -re \"Password:\"
> +		send \"$TEST_USER_PASSWD\r\"
> +		expect {
> +			# 530 - Login failed
> +			\"530\" {send_user \"$FAIL_530\n\";exit 1}
> +			# 230 - Login successful
> +			\"230\" {send_user \"$PASS_230\n\";exit 0}
> +		}
> +		expect \"ftp> \"
> +		send \"quit\r\"
>   	"
> -    else
> -        expect -c "
> -            spawn ftp $RHOST
> -            sleep 1
> -            expect -re \": \"
> -            send \"$TEST_USER\r\"
> -            expect -re \"Password:\"
> -            send \"$TEST_USER_PASSWD\r\"
> -            expect {
> -                # 230 - Login successful
> -                \"230\" {send_user \"==> TEST \#$TEST : FAIL (ftp allowed login attempt)\n\";exit 1}
> -                # 500 - Login failed
> -                \"500\" {send_user \"==> TEST \#$TEST : PASS (ftp rejected login attempt)\n\";exit 0}
> -                # 530 - Login failed
> -                \"530\" {send_user \"==> TEST \#$TEST : PASS (ftp rejected login attempt)\n\";exit 0}
> -            }
> -            expect \"ftp> \"
> -            send \"quit\r\"
> -        "
> -    fi
> -
> -    if [ $? != 0 ]; then
> -        end_testcase "Testcase failed"
> -    fi
> +	else
> +	expect -c "
> +		spawn ftp $RHOST
> +		sleep 1
> +		expect -re \": \"
> +		send \"$TEST_USER\r\"
> +		expect -re \"Password:\"
> +		send \"$TEST_USER_PASSWD\r\"
> +		expect {
> +			# 230 - Login successful
> +			\"230\" {send_user \"$FAIL_230\n\";exit 1}
> +			# 500 - Login failed
> +			\"500\" {send_user \"$PASS_500\n\";exit 0}
> +			# 530 - Login failed
> +			\"530\" {send_user \"$PASS_530\n\";exit 0}
> +		}
> +		expect \"ftp> \"
> +		send \"quit\r\"
> +	"
> +	fi
>   }
>   
> -#----------------------------------------------------------------------
> -# FUNCTION: MAIN
> -# PURPOSE:  To invoke the functions to perform the tasks described in
> -#           the prologue.
> -#----------------------------------------------------------------------
> -. net_cmdlib.sh
> +TCID="$0"
> +TST_TOTAL=1
>   
> -read_opts $*
> +. test.sh
> +. ftp_setup
> +
> +setup
>   do_setup
> +TST_CLEANUP=do_cleanup
> +
>   do_test
> -end_testcase
> +ret=$?
> +if [ $ret -ne 0 ]; then

I would use "$?" inside if, don't need "ret" variable here and in other 
places as well.

> +	tst_resm TFAIL "Test $TCID FAIL"
> +else
> +	tst_resm TPASS "Test $TCID PASS"
> +fi
> +
> +tst_exit
> diff --git a/testcases/network/tcp_cmds/ftp/ftp04 b/testcases/network/tcp_cmds/ftp/ftp04
> index 8329eb0..c13614d 100755
> --- a/testcases/network/tcp_cmds/ftp/ftp04
> +++ b/testcases/network/tcp_cmds/ftp/ftp04
> @@ -28,77 +28,66 @@
>   #   03/04/03 Jerone Young (jeroney@us.ibm.com)
>   #   09/21/05 Kris Wilson (krisw@us.ibm.com) Check if vsftpd is on system.
>   
> -#-----------------------------------------------------------------------
> -# FUNCTION:  do_setup
> -#-----------------------------------------------------------------------
> -
> -do_setup()
> +setup()
>   {
> +	exists awk expect ftp vsftpd
>   

Use tst_check_cmd()

> -    tvar=${MACHTYPE%-*}
> -    tvar=${tvar#*-}
> -
> -    RHOST=localhost
> -    TEST_USER=root
> -
> -    tst_setup
> +	TEST_USER=root
>   
> -    if [ -n "$PASSWD" ]; then
> -        TEST_USER_PASSWORD=$PASSWD
> -    else
> -        end_testcase "You must set your password via the PASSWD variable."
> -        exit 1
> -    fi
> +	tvar=${MACHTYPE%-*}
> +	tvar=${tvar#*-}
>   
> -    exists awk expect ftp vsftpd
> -
> -    if [ $tvar = "redhat" -o $tvar = "redhat-linux" ]; then
> -        echo "Verifying test user $TEST_USER is in /etc/vsftpd.ftpusers database..."
> -        FTPUSERS=$(awk "/$TEST_USER/" /etc/vsftpd.ftpusers)
> -    else
> -        echo "Verifying test user $TEST_USER is in /etc/ftpusers database..."
> -        FTPUSERS=$(awk "/$TEST_USER/" /etc/ftpusers)
> -    fi
> -    if [ -z "$FTPUSERS" ] ; then
> -        end_testcase "Test user $TEST_USER not found in /etc/ftpusers unable to run TEST, exiting 0 ..."
> -    fi
> +	if [ $tvar = "redhat" -o $tvar = "redhat-linux" ]; then
> +		ftpusers="/etc/vsftpd/ftpusers"
> +	else
> +		ftpusers="/etc/ftpusers"
> +	fi
> +	echo "Verifying test user $TEST_USER is in ${ftpusers} database..."
> +	FTPUSERS=$(awk "/$TEST_USER/" ${ftpusers})
> +	if [ -z "$FTPUSERS" ] ; then
> +		tst_brkm TBROK "$TEST_USER not found in $ftpusers exiting 0 ..."
> +	fi
>   
> +	FAIL_230="==> TEST : FAIL (ftp allowed login attempt)"
> +	PASS_530="==> TEST : PASS (ftp rejected login attempt)"
>   }
>   
> -#-----------------------------------------------------------------------
> -# FUNCTION:  do_test
> -#-----------------------------------------------------------------------
>   do_test()
>   {
> -
> -    tst_resm TINFO "Ftp should reject $TEST_USER from loging in successfully"
> -    expect -c "
> -        spawn ftp $RHOST
> -        sleep 1
> -        expect -re \": \"
> -        send \"$TEST_USER\r\"
> -        expect -re \"Password:\"
> -        send \"$TEST_USER_PASSWD\r\"
> -        expect {
> -            # 230 - Login successful
> -            \"230\" {send_user \"==> TEST \#$TEST : FAIL (ftp allowed login attempt)\n\";exit 1}
> -            # 530 - Login failed
> -            \"530\" {send_user \"==> TEST \#$TEST : PASS (ftp rejected login attempt)\n\";exit 0}
> -        }
> -        expect \"ftp> \"
> -        send \"quit\r\"
> -    "
> -
> -    [ $? -eq 0 ] || end_testcase "Testcase failed."
> -
> +	echo "Ftp should reject $TEST_USER from loging in successfully"
> +	expect -c "
> +		spawn ftp $RHOST
> +		sleep 1
> +		expect -re \": \"
> +		send \"$TEST_USER\r\"
> +		expect -re \"Password:\"
> +		send \"$TEST_USER_PASSWD\r\"
> +		expect {
> +			# 230 - Login successful
> +			\"230\" {send_user \"$FAIL_230\n\";exit 1}
> +			# 530 - Login failed
> +			\"530\" {send_user \"$PASS_530\n\";exit 0}
> +		}
> +		expect \"ftp> \"
> +		send \"quit\r\"
> +	"
>   }
>   
> -#----------------------------------------------------------------------
> -# FUNCTION: MAIN
> -#----------------------------------------------------------------------
> -. net_cmdlib.sh
> +TCID="$0"
> +TST_TOTAL=1
> +
> +. test.sh
> +. ftp_setup
>   
> -read_opts $*
> +setup
>   do_setup
> +
>   do_test
> -end_testcase
> +ret=$?
> +if [ $ret -ne 0 ]; then
> +	tst_resm TFAIL "Test $TCID FAIL"
> +else
> +	tst_resm TPASS "Test $TCID PASS"
> +fi
> +
> +tst_exit
> diff --git a/testcases/network/tcp_cmds/ftp/ftp05 b/testcases/network/tcp_cmds/ftp/ftp05
> index 4f91334..746c87a 100755
> --- a/testcases/network/tcp_cmds/ftp/ftp05
> +++ b/testcases/network/tcp_cmds/ftp/ftp05
> @@ -30,96 +30,87 @@
>   #  NOTE:
>   #	This version is intended for EAL certification, it will need modification
>   #	to conform with LTP standards in the offical LTP tree.
> +#
> +# DESCRIPTION:
> +#	The anonymous user will ftp in and create a directory in his/her
> +#	home directory on the remote host.
> +#
>   
> -do_setup()
> +setup()
>   {
> -    RHOST="localhost"
> -    TEST_USER="anonymous"
> -    TEST_USER_PASSWD="noone@nowhere.com"
> -    VSFTP_CONF=
> -
> -    tst_setup
> -
> -    exists expect ftp vsftpd
> -
> -    for vsftp_conf in /etc/vsftpd /etc; do
> -
> -        if [ -r "$vsftp_confdir/vsftp.conf" ]; then
> -            VSFTP_CONF="$vsftp_confdir/vsftp.conf"
> -            break
> -        fi
> -
> -    done
> -    if [ ! -r "$VSFTP_CONF" ] ; then
> -        end_testcase "vsftpd.conf not found."
> -    fi
> -    ANONYMOUS_ENABLE=$(awk -F= '/^anonymous_enable=/ {print $2}' "$VSFTP_CONF")
> -    if [ "$ANONYMOUS_ENABLE" != "NO" ]; then
> -        ANONYMOUS_ENABLE="YES"
> -    fi
> +	exists expect ftp vsftpd
> +	TEST_USER="anonymous"
> +	FAIL_530="==> TEST : FAIL (ftp rejected login attempt)"
> +	PASS_230="==> TEST : PASS (ftp allowed login attempt)"
> +	FAIL_230="==> TEST : FAIL (ftp allowed login attempt)"
> +	PASS_500="==> TEST : PASS (ftp rejected login attempt)"
> +	PASS_530="==> TEST : PASS (ftp rejected login attempt)"
>   }
>   
> -#-----------------------------------------------------------------------
> -# FUNCTION   : do_test
> -#
> -# DESCRIPTION: The anonymous user will ftp in and create a directory in his/her
> -#              home directory on the remote host.
> -#-----------------------------------------------------------------------
> -
>   do_test()
>   {
> -    tst_resm TINFO "Ftp into a remote host as anonymous user; ANONYMOUS_ENABLE=$ANONYMOUS_ENABLE"
> +	echo "Ftp into a remote host as anonymous user;"
> +	echo "ANONYMOUS_ENABLE=$ANONYMOUS_ENABLE"
>   
> -    if [ "$ANONYMOUS_ENABLE" = "YES" ]; then
> -        expect -c "
> -            spawn ftp $RHOST
> -            sleep 1
> -            expect -re \": \"
> -            send \"$TEST_USER\r\"
> -            expect -re \"Password:\"
> -            send \"$TEST_USER_PASSWD\r\"
> -            expect {
> -                # 530 - Login failed
> -                \"530\" {send_user \"==> TEST \#$TEST : FAIL (ftp rejected login attempt)\n\";exit 1}
> -                # 230 - Login successful
> -                \"230\" {send_user \"==> TEST \#$TEST : PASS (ftp allowed login attempt)\n\";exit 0}
> -            }
> -            expect \"ftp> \"
> -            send \"quit\r\"
> +	if [ "$ANONYMOUS_ENABLE" = "YES" ]; then
> +	expect -c "
> +		spawn ftp $RHOST
> +		sleep 1
> +		expect -re \": \"
> +		send \"$TEST_USER\r\"
> +		expect -re \"Password:\"
> +		send \"$TEST_USER_PASSWD\r\"
> +		expect {
> +			# 530 - Login failed
> +			\"530\" {send_user \"$FAIL_530\n\";exit 1}
> +			# 230 - Login successful
> +			\"230\" {send_user \"$PASS_230\n\";exit 0}
> +		}
> +		expect \"ftp> \"
> +		send \"quit\r\"
>   	"
> -    else
> -        expect -c "
> -            spawn ftp $RHOST
> -            sleep 1
> -            expect -re \": \"
> -            send \"$TEST_USER\r\"
> -            expect -re \"Password:\"
> -            send \"$TEST_USER_PASSWD\r\"
> -            expect {
> -                # 230 - Login successful
> -                \"230\" {send_user \"==> TEST \#$TEST : FAIL (ftp allowed login attempt)\n\";exit 1}
> -                # 500 - Login failed
> -                \"500\" {send_user \"==> TEST \#$TEST : PASS (ftp rejected login attempt)\n\";exit 0}
> -                # 530 - Login failed
> -                \"530\" {send_user \"==> TEST \#$TEST : PASS (ftp rejected login attempt)\n\";exit 0}
> -            }
> -            expect \"ftp> \"
> -            send \"quit\r\"
> -        "
> -    fi
> -
> -    [ $? -eq 0 ] || end_testcase "Testcase failed."
> +	else
> +	expect -c "
> +		spawn ftp $RHOST
> +		sleep 1
> +		expect -re \": \"
> +		send \"$TEST_USER\r\"
> +		expect -re \"Password:\"
> +		send \"$TEST_USER_PASSWD\r\"
> +		expect {
> +			# 230 - Login successful
> +			\"230\" {send_user \"$FAIL_230\n\";exit 1}
> +			# 500 - Login failed
> +			\"500\" {send_user \"$PASS_500\n\";exit 0}
> +			# 530 - Login failed
> +			\"530\" {send_user \"$PASS_530\n\";exit 0}
> +		}
> +		expect \"ftp> \"
> +		send \"quit\r\"
> +	"
> +	fi
>   
> +	if [ $? -ne 0 ]; then
> +		tst_exit TBROK "Testcase failed."

There is tst_brkm library function for that purpose, it includes tst_exit.

> +	fi
>   }
>   
> -#----------------------------------------------------------------------
> -# FUNCTION: MAIN
> -# PURPOSE:  To invoke the functions to perform the tasks described in
> -#           the prologue.
> -#----------------------------------------------------------------------
> -. net_cmdlib.sh
> +TCID="$0"
> +TST_TOTAL=1
>   
> -read_opts $*
> +. test.sh
> +. ftp_setup
> +
> +setup
>   do_setup
> +#TEST_USER_PASSWD="noone@nowhere.com"
> +
>   do_test
> -end_testcase
> +ret=$?
> +if [ $ret -ne 0 ]; then
> +	tst_resm TFAIL "Test $TCID FAIL"
> +else
> +	tst_resm TPASS "Test $TCID PASS"
> +fi
> +
> +tst_exit
> diff --git a/testcases/network/tcp_cmds/ftp/ftp_set_passwd b/testcases/network/tcp_cmds/ftp/ftp_set_passwd
> deleted file mode 100755
> index 7c275c9..0000000
> --- a/testcases/network/tcp_cmds/ftp/ftp_set_passwd
> +++ /dev/null
> @@ -1,28 +0,0 @@
> -#!/usr/bin/expect
> -#
> -# Set Password for a specific new user
> -# This script should be run as 'root'
> -#
> -# Example:
> -#		./set_passwd USER PASSWD
> -#
> -
> -if { [llength $argv] < 2} {
> -    exit 1
> -}
> -
> -set USER [lindex $argv 0]
> -set PASSWD [lindex $argv 1]
> -
> -set timeout 30
> -
> -spawn passwd $USER
> -expect "Enter new password: "
> -sleep 1
> -exp_send "$PASSWD\r"
> -expect "Re-type new password: "
> -sleep 1
> -exp_send "$PASSWD\r"
> -expect success
> -
> -exit 0
> diff --git a/testcases/network/tcp_cmds/ftp/ftp_setup b/testcases/network/tcp_cmds/ftp/ftp_setup
> new file mode 100644
> index 0000000..7100736
> --- /dev/null
> +++ b/testcases/network/tcp_cmds/ftp/ftp_setup
> @@ -0,0 +1,82 @@
> +#!/bin/sh
> +###############################################################################
> +## Copyright (c) International Business Machines  Corp., 2003                ##
> +##                                                                           ##
> +## This program is free software;  you can redistribute it and/or modify     ##
> +## it under the terms of the GNU General Public License as published by      ##
> +## the Free Software Foundation; either version 2 of the License, or         ##
> +## (at your option) any later version.                                       ##
> +##                                                                           ##
> +## This program is distributed in the hope that it will be useful,           ##
> +## but WITHOUT ANY WARRANTY;  without even the implied warranty of           ##
> +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See                 ##
> +## the GNU General Public License for more details.                          ##
> +##                                                                           ##
> +## You should have received a copy of the GNU General Public License         ##
> +## along with this program;  if not, write to the Free Software Foundation,  ##
> +## Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA          ##
> +##                                                                           ##
> +###############################################################################
> +
> +exists()
> +{
> +	for cmd in $*; do
> +		if ! command -v $cmd > /dev/null 2>&1; then
> +			tst_brkm TBROK "$cmd: command not found"
> +		fi
> +	done
> +}

tst_check_cmd() replaces it.

> +
> +do_setup()
> +{
> +
> +	export RHOST="localhost"
> +	export TEST_USER_PASSWD="eal"
> +	export TEST_USER_ENCRYPTED_PASSWD="42VmxaOByKwlA"
> +	export TEST_USER_HOMEDIR="/home/$TEST_USER"
> +
> +	for vsftp_confdir in /etc/vsftpd /etc; do
> +		if [ -r "$vsftp_confdir/vsftpd.conf" ]; then
> +			VSFTP_CONF="$vsftp_confdir/vsftpd.conf"
> +			break
> +		fi
> +	done
> +	if [ ! -r "$VSFTP_CONF" ] ; then
> +		tst_brkm TBROK "vsftpd.conf not found."
> +	fi
> +
> +	LOCAL_ENABLE=$(awk -F= '/^local_enable=/ {print $2}' "$VSFTP_CONF")
> +	if [ "$LOCAL_ENABLE" != "YES" ]; then
> +		LOCAL_ENABLE="NO"
> +	fi
> +
> +	ANONYMOUS_ENABLE=$(awk -F= '/^anonymous_enable=/ {print $2}' "$VSFTP_CONF")
> +	if [ "$ANONYMOUS_ENABLE" != "NO" ]; then
> +		ANONYMOUS_ENABLE="YES"
> +	fi
> +
> +	if [ $TEST_USER = "root" -o $TEST_USER = "anonymous" ]; then
> +		return
> +	fi
> +
> +	userdel -r $TEST_USER
> +	sleep 1
> +
> +	if ! useradd -m -p $TEST_USER_ENCRYPTED_PASSWD $TEST_USER; then
> +		tst_brkm TBROK "Could not add test user $TEST_USER to system $RHOST."
> +	fi
> +
> +	# create users home diretory (SLES 8 does not do this, even when specified
> +	# in adduser)
> +	USER_UID=$(id -u $TEST_USER)
> +	USER_GID=$(id -g $TEST_USER)
> +	mkdir -p "$TEST_USER_HOMEDIR"
> +	chown -R $USER_UID:$USER_GID $TEST_USER_HOMEDIR
> +}
> +
> +do_cleanup()
> +{
> +	if [ $TEST_USER != "root" -a $TEST_USER != "anonymous" ]; then
> +		userdel -r $TEST_USER
> +	fi
> +}
> diff --git a/testcases/network/tcp_cmds/ftp/ftp_setup_vsftp_conf b/testcases/network/tcp_cmds/ftp/ftp_setup_vsftp_conf
> deleted file mode 100755
> index 7e496f6..0000000
> --- a/testcases/network/tcp_cmds/ftp/ftp_setup_vsftp_conf
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -#!/bin/sh
> -
> -grep -v "local_enable" /etc/vsftpd.conf > /tmp/vsftpd.conf
> -mv -f /tmp/vsftpd.conf /etc/vsftpd.conf
> -echo "local_enable=YES" >> /etc/vsftpd.conf

Also, the same comments apply to the 2nd ssh patch.

Thanks,
Alexey


------------------------------------------------------------------------------
Infragistics Professional
Build stunning WinForms apps today!
Reboot your WinForms applications with our WinForms controls. 
Build a bridge from your legacy apps to the future.
http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

  parent reply	other threads:[~2014-07-31 11:55 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-29 11:42 [LTP] [PATCH 1/2] network ftp: some cleanup Zeng Linggang
2014-07-29 11:42 ` [LTP] [PATCH 2/2] network ssh: " Zeng Linggang
2014-07-31 11:55 ` Alexey [this message]
2014-08-01  1:25   ` [LTP] [PATCH 1/2] network ftp: " Zeng Linggang
2014-08-01  3:11   ` [LTP] [PATCH v2 " Zeng Linggang
2014-08-01 13:23     ` Alexey Kodanev
2014-09-25 10:56       ` Alexey Kodanev
2014-08-01  3:12   ` [LTP] [PATCH v2 2/2] network ssh: " Zeng Linggang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=53DA2E9A.5030902@oracle.com \
    --to=alexey.kodanev@oracle.com \
    --cc=ltp-list@lists.sourceforge.net \
    --cc=zenglg.jy@cn.fujitsu.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox