Hi!
On 21.01.2015 8:28, Zeng Linggang wrote:
> * Add 'TCID' and 'TST_TOTAL'.
> * Use 'test.sh'.
> * Delete some useless comment.
> * Some cleanup.
>
> Signed-off-by: Zeng Linggang<[email protected]>
> ---
> testcases/network/tcp_cmds/telnet/telnet01 | 143
> ++++++++++++-----------------
> 1 file changed, 58 insertions(+), 85 deletions(-)
>
> diff --git a/testcases/network/tcp_cmds/telnet/telnet01
> b/testcases/network/tcp_cmds/telnet/telnet01
> index 36ebf12..b006fe9 100755
> --- a/testcases/network/tcp_cmds/telnet/telnet01
> +++ b/testcases/network/tcp_cmds/telnet/telnet01
> @@ -1,5 +1,4 @@
> -#! /usr/bin/expect -f
> -#*********************************************************************
> +#!/bin/bash
> # Copyright (c) International Business Machines Corp., 2000
> #
> # This program is free software; you can redistribute it and/or modify
> @@ -16,102 +15,76 @@
> # along with this program; if not, write to the Free Software
> # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
> 02110-1301 USA
> #
> -#
> -#
> -# FILE : telnet
> -#
> -# PURPOSE: Tests the basic functionality of `telnet`.
> -#
> # SETUP: The program `/usr/bin/expect' MUST be installed.
> # The PASSWD and RHOST variables MUST be set prior to execution.
> #
> -# HISTORY:
> # 03/01 Robbie Williamson ([email protected])
> -# -Ported
> -#
> -#*********************************************************************
> -#
> -# telnet perform a telnet session to each host in HOST_LIST with user
> -# RUSER for a count of LOOPCOUNT and does an ls -l /etc/hosts to
> -# verify that the telnet was established.
> -#
> -#*********************************************************************
>
> -set TC telnet
> -set TCtmp "/tmp"
> -set SLEEPTIME 3
> -set TESTLOG "$TCtmp"
> -set PROMPT "Alpha Bravo"
> -
> -if [info exists env(RUSER)] {
> - set RUSER $env(RUSER)
> -} else {
> - set RUSER root
> -}
> +TCID="telnet01"
> +TST_TOTAL=1
> +. test.sh
>
> -if [info exists env(PASSWD)] {
> - set PASSWD $env(PASSWD)
> -} else {
> - set PASSWD .pasroot
> - send_user "PASSWD NOT SET:Using .pasroot as the PASSWD variable for
> $RUSER. \n"
> -}
> +setup()
> +{
> + if [ -z $RUSER ]; then
> + RUSER=root
> + fi
>
> -if [info exists env(RHOST)] {
> - set RHOST $env(RHOST)
> -} else {
> - send_user "Please set/export the RHOST variable. \n"
> - exit 1
> -}
> + if [ -z $PASSWD ]; then
> + tst_brkm TCONF "Please set PASSWD for $RUSER."
> + fi
>
> -set timeout 90
> + if [ -z $RHOST ]; then
> + tst_brkm TCONF "Please set RHOST."
> + fi
>
> -if [info exists env(LOOPCOUNT)] {
> - set LOOPCOUNT $env(LOOPCOUNT)
> -} else {
> - set LOOPCOUNT 25
> + if [ -z $LOOPCOUNT ]; then
> + LOOTCOUNT=25
^
should be 'P' here
> + fi
> }
>
> -# stty echo
> -send_user " Starting\n"
> -
> -# Do foreach host on command line
> -set count 0
> -while {$count < $LOOPCOUNT} {
> - set count [expr $count+1]
> - foreach HOST $RHOST {
> - send_user "Host: $HOST\n"
> -
> - # telnet to the host
> - spawn telnet $HOST
> - expect -re "login:"
> -
> - send "$RUSER\r"
> - expect -re "Password:"
> +do_test()
> +{
> + tst_resm TINFO "Starting"
>
> - send "$PASSWD\r"
> -
> - send "PS1=\"$PROMPT\"\r"
> - # Wait for shell prompt
> - expect "$PROMPT"
> + for i in $(seq 1 ${LOOPCOUNT})
> + do
> + telnet_test || return 1
> + done
> +}
>
> - # Run passwd command - and respond to its prompts
> - send "LC_ALL=C ls -l /etc/hosts | wc -w > $TESTLOG/$RUSER.$HOST \r"
> - # When shell prompt comes back, logout
> +telnet_test()
> +{
> + expect -c "
> + spawn telnet $RHOST
> + expect -re \"login:\"
> + send \"$RUSER\r\"
> + expect -re \"Password:\"
> + send \"$PASSWD\r\"
> +
> + send \"LC_ALL=C ls -l /etc/hosts | wc -w > $RUSER.$RHOST \r\"
> + expect \"$RUSER@\"
This part needs some extra checking for failed login, e.g. 'incorrect'
password or connection timeout:
expect -re "incorrect" {
exit 1
} -re "$USERS@"
> + exp_send \"logout\r\"
> +
The below part can be changed to:
tst_resm TINFO "checking telnet status"
tst_rhost_run -s -c "grep -q 9 $RUSER.$RHOST"
tst_rhost_run -c "rm -f $RUSER.$RHOST"
Note, 'tst_rhost_run' with '-s' option should exit with TBROK if remote
command returns non-zero exit status, please find the following patch
with the fix:
[PATCH v2] lib/test_net.sh: fix 'tst_rhost_run -s' when errors occur.
> + send_user \"CHECKING TELNET STATUS\n\"
> +
> + set nummatch [exec rsh -n -l $RUSER $RHOST \\
> + \"grep -c 9 $RUSER.$RHOST\"]
> + if {\$nummatch==1} {
> + exec rsh -n -l $RUSER $RHOST \"rm -f $RUSER.$RHOST\"
> + } else {
> + exit 1
> + }
> + "
> +}
>
> - expect "$PROMPT"
> - exp_send "logout\r"
> +setup
>
> - send_user "CHECKING TELNET STATUS\n"
> - set nummatch [exec rsh -n -l $RUSER $HOST "cat
> $TESTLOG/$RUSER.$HOST|grep -c 9"]
> - if {$nummatch==1} {
> - send_user "$TC interactive Test Successful in LOOP $count\r"
> - exec rsh -n -l $RUSER $HOST "rm -f $TESTLOG/$RUSER.$HOST"
> - } else {
> - send_user "$TC interactive session failed\n"
> - exit 1
> - }
> - }
> -}
> +do_test
> +if [ $? -ne 0 ]; then
> + tst_resm TFAIL "Test $TCID failed."
> +else
> + tst_resm TPASS "Test $TCID successed."
"'succeeded"
> +fi
>
> -send_user "\nTest PASSES\n\n"
> -exit 0
> +tst_exit
Also, there is too much non-standard LTP output, especially if LOOPCOUNT
is big. Could we send it to a file and only if there are some errors,
print it. Any thoughts?
Thanks,
Alexey
------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list