rwho01 revision 6518012db8b99b04ef3e4df22aefe82fa487b809
1865695bbc89088b9526ea9045410e5afb70a985cplars#!/bin/sh 2865695bbc89088b9526ea9045410e5afb70a985cplars# 3865695bbc89088b9526ea9045410e5afb70a985cplars# Copyright (c) International Business Machines Corp., 2000 4865695bbc89088b9526ea9045410e5afb70a985cplars# 5865695bbc89088b9526ea9045410e5afb70a985cplars# This program is free software; you can redistribute it and/or modify 6865695bbc89088b9526ea9045410e5afb70a985cplars# it under the terms of the GNU General Public License as published by 7865695bbc89088b9526ea9045410e5afb70a985cplars# the Free Software Foundation; either version 2 of the License, or 8865695bbc89088b9526ea9045410e5afb70a985cplars# (at your option) any later version. 9865695bbc89088b9526ea9045410e5afb70a985cplars# 10865695bbc89088b9526ea9045410e5afb70a985cplars# This program is distributed in the hope that it will be useful, 11865695bbc89088b9526ea9045410e5afb70a985cplars# but WITHOUT ANY WARRANTY; without even the implied warranty of 12865695bbc89088b9526ea9045410e5afb70a985cplars# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 13865695bbc89088b9526ea9045410e5afb70a985cplars# the GNU General Public License for more details. 14865695bbc89088b9526ea9045410e5afb70a985cplars# 15865695bbc89088b9526ea9045410e5afb70a985cplars# You should have received a copy of the GNU General Public License 166518012db8b99b04ef3e4df22aefe82fa487b809Rishikesh K Rajak# along with this program; if not, write to the Free Software 17865695bbc89088b9526ea9045410e5afb70a985cplars# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18865695bbc89088b9526ea9045410e5afb70a985cplars# 19865695bbc89088b9526ea9045410e5afb70a985cplars# 20865695bbc89088b9526ea9045410e5afb70a985cplars# 21865695bbc89088b9526ea9045410e5afb70a985cplars# FILE : rwho 22865695bbc89088b9526ea9045410e5afb70a985cplars# 23865695bbc89088b9526ea9045410e5afb70a985cplars# PURPOSE: To test the basic functionality of the rwhod daemon using the 24865695bbc89088b9526ea9045410e5afb70a985cplars# `rwho` and `ruptime` commands. 25865695bbc89088b9526ea9045410e5afb70a985cplars# 26865695bbc89088b9526ea9045410e5afb70a985cplars# SETUP: The home directory of root on the machine exported as "RHOST" 27865695bbc89088b9526ea9045410e5afb70a985cplars# MUST have a ".rhosts" file with the hostname of the machine 28865695bbc89088b9526ea9045410e5afb70a985cplars# where the test is executed. Also, both machines MUST have 29865695bbc89088b9526ea9045410e5afb70a985cplars# the rwhod daemon installed. However, it does not need to be 30865695bbc89088b9526ea9045410e5afb70a985cplars# active, the test will handle this. 31865695bbc89088b9526ea9045410e5afb70a985cplars# 32865695bbc89088b9526ea9045410e5afb70a985cplars# HISTORY: 33234eff40e6e3a1a3e628711ac878298537738739iyermanoj# 06/09 Manoj Iyer manjo@mail.utexas.edu 34234eff40e6e3a1a3e628711ac878298537738739iyermanoj# - Modified to use test harness API and also fix defects 35865695bbc89088b9526ea9045410e5afb70a985cplars# 03/01 Robbie Williamson (robbiew@us.ibm.com) 36865695bbc89088b9526ea9045410e5afb70a985cplars# -Ported 37865695bbc89088b9526ea9045410e5afb70a985cplars# 38865695bbc89088b9526ea9045410e5afb70a985cplars# 39865695bbc89088b9526ea9045410e5afb70a985cplars#============================================================================== 40865695bbc89088b9526ea9045410e5afb70a985cplars# error codes: 0 rwho/ruptime successful 41ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya# 1 rwho failed no local and remote host in file 42ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya# 2 ruptime failed no local and remote host in file 43865695bbc89088b9526ea9045410e5afb70a985cplars#============================================================================== 44865695bbc89088b9526ea9045410e5afb70a985cplars 45865695bbc89088b9526ea9045410e5afb70a985cplars#----------------------------------------------------------------------- 46865695bbc89088b9526ea9045410e5afb70a985cplars# 47ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya# FUNCTION: do_setup 48234eff40e6e3a1a3e628711ac878298537738739iyermanoj# 49234eff40e6e3a1a3e628711ac878298537738739iyermanoj#----------------------------------------------------------------------- 50234eff40e6e3a1a3e628711ac878298537738739iyermanoj 51ef77253961f909f87e82e6d2b620e87af33e9665yaberauneyado_setup() 52234eff40e6e3a1a3e628711ac878298537738739iyermanoj{ 53234eff40e6e3a1a3e628711ac878298537738739iyermanoj 54ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya TCtmp=${TCtmp:-$LTPROOT/testcases/bin/$TC${EXEC_SUFFIX}$$} 55234eff40e6e3a1a3e628711ac878298537738739iyermanoj 56ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya PID=0 57ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya RHOST_PID=0 58ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya SLEEPTIME=${SLEEPTIME:-20} 59ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya NUMLOOPS=${NUMLOOPS:-25} 60ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya OUTFILE=${OUTFILE:-$TCtmp/${TC}.out} 61ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 62ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya tst_setup 63ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 64ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya exists awk cut hostname killall ps rsh rwho 65ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 66ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya LHOST=`hostname | cut -f1 -d.` 67ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya RHOST=${RHOST:-$LHOST} 68ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 69ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya trap do_cleanup EXIT 70ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 71ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya if ! ps -ef | awk '/rwhod/ && $0 !~ /awk/'; then 72ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya tst_resm TINFO "Starting rwhod on $LHOST" 73ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya rwhod || end_testcase "Unable to start rwhod on $LHOST" 74ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya PID=1 75ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya sleep $SLEEPTIME 76ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya fi 77ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 78ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya if ! rsh -n -l root $RHOST ps -ef | awk '/rwhod/ && $0 !~ /awk/'; then 79ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya tst_resm TINFO "Starting rwhod on $RHOST" 80ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya if ! rsh -n -l root $RHOST /usr/sbin/rwhod; then 81ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya end_testcase "Unable to start rwhod on $RHOST" 82ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya fi 83ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya RHOST_PID=$(rsh -n -l root $RHOST ps -ef | awk '/rwhod/ && $0 !~ /awk/ {print $2 ; exit}') 84ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya if [ -z "$RHOST_PID" ]; then 85ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya RHOST_PID=0 86ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya end_testcase "Unable to start rwhod on $RHOST" 87ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya fi 88ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya sleep $SLEEPTIME 89ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya fi 90ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 91ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya RHOSTNAME=`rsh -n -l root $RHOST hostname | cut -f1 -d.` 92ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya if [ -z "$RHOSTNAME" ]; then 93ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya end_testcase "Unable to determine RHOSTNAME" 94ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya fi 95865695bbc89088b9526ea9045410e5afb70a985cplars 96865695bbc89088b9526ea9045410e5afb70a985cplars} 97865695bbc89088b9526ea9045410e5afb70a985cplars 98865695bbc89088b9526ea9045410e5afb70a985cplars#----------------------------------------------------------------------- 99865695bbc89088b9526ea9045410e5afb70a985cplars# 100865695bbc89088b9526ea9045410e5afb70a985cplars# FUNCTION: do_test 101865695bbc89088b9526ea9045410e5afb70a985cplars# 102865695bbc89088b9526ea9045410e5afb70a985cplars#----------------------------------------------------------------------- 103865695bbc89088b9526ea9045410e5afb70a985cplars 104865695bbc89088b9526ea9045410e5afb70a985cplarsdo_test() 105865695bbc89088b9526ea9045410e5afb70a985cplars{ 106ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 107ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya while [ $TST_COUNT -le $NUMLOOPS ]; do 108ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya rwho -a > $OUTFILE 109698bbbb5b71d4750581b01cb92083f81f0c19705subrata_modak HOST=`awk "\\$2 ~ /$LHOST>/" $OUTFILE | cut -f1 -d: | sort -u` 110ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya [ "$HOST" = "$LHOST" ] || end_testcase "$LHOST is not in rwho outfile" 111698bbbb5b71d4750581b01cb92083f81f0c19705subrata_modak HOST=`awk "\\$2 ~ /$RHOSTNAME>/" $OUTFILE | cut -f1 -d: | sort -u` 112ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya [ "$HOST" = "$RHOSTNAME" ] || end_testcase "$RHOSTNAME is not in rwho outfile" 113ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 114ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya ruptime -a > $OUTFILE 115698bbbb5b71d4750581b01cb92083f81f0c19705subrata_modak HOST=`awk "\\$1 ~ /$LHOST>/" $OUTFILE | sort -u` 116ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya [ "$HOST" = "$LHOST" ] || end_testcase "$LHOST is not in ruptime outfile" 117698bbbb5b71d4750581b01cb92083f81f0c19705subrata_modak HOST=`awk "\\$1 ~ /$RHOSTNAME>/" $OUTFILE | sort -u` 118ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya [ "$HOST" = "$RHOSTNAME" ] || end_testcase "$RHOSTNAME is not in ruptime outfile" 119ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 120ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya tst_resm TINFO "Test $COUNT of $NUMLOOPS complete" 121ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya incr_tst_count 122ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya done 123865695bbc89088b9526ea9045410e5afb70a985cplars} 124865695bbc89088b9526ea9045410e5afb70a985cplars 125865695bbc89088b9526ea9045410e5afb70a985cplars#----------------------------------------------------------------------- 126865695bbc89088b9526ea9045410e5afb70a985cplars# 127865695bbc89088b9526ea9045410e5afb70a985cplars# FUNCTION: do_cleanup 128865695bbc89088b9526ea9045410e5afb70a985cplars# 129865695bbc89088b9526ea9045410e5afb70a985cplars#----------------------------------------------------------------------- 130865695bbc89088b9526ea9045410e5afb70a985cplars 131865695bbc89088b9526ea9045410e5afb70a985cplarsdo_cleanup() 132865695bbc89088b9526ea9045410e5afb70a985cplars{ 133ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya if [ $PID -ne 0 ]; then 134ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya tst_resm TINFO "Stopping rwhod on $LHOST" 135ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya killall rwhod 136ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya fi 137ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 138ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya if [ $RHOST_PID -ne 0 ]; then 139ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya tst_resm TINFO "Stopping rwhod on $RHOST" 140ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya rsh -n -l root $RHOST "killall rwhod" 141ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya fi 142ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 143ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya tst_cleanup 144865695bbc89088b9526ea9045410e5afb70a985cplars 145865695bbc89088b9526ea9045410e5afb70a985cplars} 146865695bbc89088b9526ea9045410e5afb70a985cplars 147865695bbc89088b9526ea9045410e5afb70a985cplars#----------------------------------------------------------------------- 148865695bbc89088b9526ea9045410e5afb70a985cplars# 149865695bbc89088b9526ea9045410e5afb70a985cplars# FUNCTION: MAIN 150865695bbc89088b9526ea9045410e5afb70a985cplars# 151865695bbc89088b9526ea9045410e5afb70a985cplars#----------------------------------------------------------------------- 152ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya. net_cmdlib.sh 153ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 154ef77253961f909f87e82e6d2b620e87af33e9665yaberauneyaread_opts $* 155865695bbc89088b9526ea9045410e5afb70a985cplarsdo_setup 156865695bbc89088b9526ea9045410e5afb70a985cplarsdo_test 157865695bbc89088b9526ea9045410e5afb70a985cplarsend_testcase 158