blob: c93b3d7cc0865f685881a6dddb730a9811ec293e [file] [log] [blame]
#!/bin/sh
#
# Copyright (c) International Business Machines Corp., 2000
#
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
#
#
# FILE : rcp
#
# PURPOSE: To test the basic functionality of the `rcp` command.
#
# SETUP: The home directory of root on the machine exported as "RHOST"
# MUST have a ".rhosts" file with the hostname of the machine
# where the test is executed.
#
# HISTORY:
# 06/06/03 Manoj Iyer manjo@mail.utexas.edu
# - Modified testcases to use test APIS and fixed bugs
# 03/01 Robbie Williamson (robbiew@us.ibm.com)
# -Ported
#
#
#-----------------------------------------------------------------------
#-----------------------------------------------------------------------
#
# FUNCTION: do_setup
#
#-----------------------------------------------------------------------
do_setup()
{
TCtmp=${TCtmp:-$LTPROOT/testcases/bin/$TC${EXEC_SUFFIX}$$}
TCdat=${TCdat:-$LTPROOT/testcases/bin/datafiles}
LHOST=`hostname`
RHOST=${RHOST:-$LHOST}
SLEEPTIME=${SLEEPTIME:-0}
FILES=${FILES:-"bin.sm bin.med bin.lg bin.jmb"}
tst_setup
exists awk rcp rsh sum
if ! rsh -n -l root $RHOST mkdir -p $TCtmp 2>&1 1>/dev/null; then
end_testcase "Remote mkdir failed"
fi
trap do_cleanup EXIT
}
#-----------------------------------------------------------------------
#
# FUNCTION: do_test
#
#-----------------------------------------------------------------------
do_test()
{
for j in $FILES; do
if ! rcp $TCdat/$j $RHOST:$TCtmp/$j; then
end_testcase "Failed to rcp file."
fi
SUM1=`sum $TCdat/$j | awk '{print $1}'`
SUM2=`rsh -n -l root $RHOST sum $TCtmp/$j | awk '{print $1}'`
rsh -n -l root $RHOST "rm -f $TCtmp/$j"
sleep $SLEEPTIME
if [ "$SUM1 = $SUM2" ]; then
tst_resm TINFO "rcp $TCdat/$j $RHOST:$TCtmp/$j successful"
else
end_testcase "FAILED: wrong sum in transfer to $RHOST"
fi
sleep $SLEEPTIME
done
for j in $FILES; do
tst_resm TINFO "remote copying $RHOST:$TCdat/$j to $TCtmp/$j"
if ! rcp $RHOST:$TCdat/$j $TCtmp/$j 2>&1 1>/dev/null; then
tst_resm TFAIL "Failed to rcp file."; continue
fi
SUM1=`sum $TCtmp/$j | awk '{print $1}'`
SUM2=`rsh -n -l root $RHOST sum $TCdat/$j | awk '{print $1}'`
rm -f $TCtmp/$j
sleep $SLEEPTIME
if [ "$SUM1" = "$SUM2" ]; then
tst_resm TINFO "rcp $RHOST:$TCdat/$j $TCtmp/$j successful"
else
end_testcase "FAILED: wrong sum in transfer to $LHOST from $RHOST"
fi
sleep $SLEEPTIME
done
}
#-----------------------------------------------------------------------
#
# FUNCTION: do_cleanup
#
#-----------------------------------------------------------------------
do_cleanup()
{
rsh -n -l root $RHOST rmdir $TCtmp
tst_cleanup
}
#----------------------------------------------------------------------
# FUNCTION: MAIN
# PURPOSE: To invoke the functions to perform the tasks described in
# the prologue.
# INPUT: None.
# OUTPUT: A testcase run log with the results of the execution of this
# test.
#----------------------------------------------------------------------
. net_cmdlib.sh
read_opts $*
do_setup
do_test
end_testcase