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<zenglg...@cn.fujitsu.com> > --- > 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 (robb...@us.ibm.com) > -# -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 Ltp-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ltp-list