Hi Alexey!
On Thu, 2014-07-31 at 16:20 +0400, Alexey wrote:
> 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...@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.
> 

Thank you for your review.
I got it.

> > +   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 (jero...@us.ibm.com)
> > -#       09/21/05 Kris Wilson (kr...@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.
> 

Got it.

> > +   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 (jero...@us.ibm.com)
> >   #   09/21/05 Kris Wilson (kr...@us.ibm.com) Check if vsftpd is on system.
> >   
> > -#-----------------------------------------------------------------------
> > -# FUNCTION:  do_setup
> > -#-----------------------------------------------------------------------
> > -
> > -do_setup()
> > +setup()
> >   {
> > +   exists awk expect ftp vsftpd
> >   
> 
> Use tst_check_cmd()
> 

Got it.

> > -    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="no...@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.
> 

I mean to delete these codes but I forgot, the returned value will be
checked in the main function not here.

> > +   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="no...@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.
> 

Got 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.
> 

Got it.
And thank you.

Best regards,
Zeng

> Thanks,
> Alexey
> 



------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to