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
next prev 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