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 174548c6cf9bcdd96d8303caa4130ab638b61f8a30Wanlong Gao# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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 3037550cf5a86c7ca7424a2a318dd64e550f13f5dfChris Dearman# 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 516850e35edd342a5aa3c2f6cb9b9a256fb6dfdd34Simon XuLHOST_PID="" 526850e35edd342a5aa3c2f6cb9b9a256fb6dfdd34Simon XuRHOST_PID="" 536850e35edd342a5aa3c2f6cb9b9a256fb6dfdd34Simon Xu 54ef77253961f909f87e82e6d2b620e87af33e9665yaberauneyado_setup() 55234eff40e6e3a1a3e628711ac878298537738739iyermanoj{ 56ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya TCtmp=${TCtmp:-$LTPROOT/testcases/bin/$TC${EXEC_SUFFIX}$$} 57234eff40e6e3a1a3e628711ac878298537738739iyermanoj 586850e35edd342a5aa3c2f6cb9b9a256fb6dfdd34Simon Xu SLEEPTIME=${SLEEPTIME:-5} 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 716850e35edd342a5aa3c2f6cb9b9a256fb6dfdd34Simon Xu if ! pgrep -x rwhod > /dev/null; then 72ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya tst_resm TINFO "Starting rwhod on $LHOST" 73ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya rwhod || end_testcase "Unable to start rwhod on $LHOST" 746850e35edd342a5aa3c2f6cb9b9a256fb6dfdd34Simon Xu LHOST_PID=$(pgrep -x rwhod) 75ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya sleep $SLEEPTIME 76ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya fi 77ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 786850e35edd342a5aa3c2f6cb9b9a256fb6dfdd34Simon Xu if [ "$(rsh -n -l root $RHOST pgrep -x rwhod)" == "" ]; then 79ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya tst_resm TINFO "Starting rwhod on $RHOST" 806850e35edd342a5aa3c2f6cb9b9a256fb6dfdd34Simon Xu rsh -n -l root $RHOST /usr/sbin/rwhod 816850e35edd342a5aa3c2f6cb9b9a256fb6dfdd34Simon Xu RHOST_PID=$(rsh -n -l root $RHOST pgrep -x rwhod) 82ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya if [ -z "$RHOST_PID" ]; then 83ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya end_testcase "Unable to start rwhod on $RHOST" 84ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya fi 85ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya sleep $SLEEPTIME 86ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya fi 87ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 88ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya RHOSTNAME=`rsh -n -l root $RHOST hostname | cut -f1 -d.` 89ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya if [ -z "$RHOSTNAME" ]; then 90ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya end_testcase "Unable to determine RHOSTNAME" 91ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya fi 92865695bbc89088b9526ea9045410e5afb70a985cplars} 93865695bbc89088b9526ea9045410e5afb70a985cplars 94865695bbc89088b9526ea9045410e5afb70a985cplars#----------------------------------------------------------------------- 95865695bbc89088b9526ea9045410e5afb70a985cplars# 96865695bbc89088b9526ea9045410e5afb70a985cplars# FUNCTION: do_test 97865695bbc89088b9526ea9045410e5afb70a985cplars# 98865695bbc89088b9526ea9045410e5afb70a985cplars#----------------------------------------------------------------------- 99865695bbc89088b9526ea9045410e5afb70a985cplars 100865695bbc89088b9526ea9045410e5afb70a985cplarsdo_test() 101865695bbc89088b9526ea9045410e5afb70a985cplars{ 102ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya while [ $TST_COUNT -le $NUMLOOPS ]; do 103ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya rwho -a > $OUTFILE 10436531d536b405718b2520ae8ddd6b33d01b019dfSimon Xu HOST=`grep $LHOST $OUTFILE | sed 's/[^ ]* *//; s/:.*//' | uniq` 105ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya [ "$HOST" = "$LHOST" ] || end_testcase "$LHOST is not in rwho outfile" 10636531d536b405718b2520ae8ddd6b33d01b019dfSimon Xu HOST=`grep $RHOSTNAME $OUTFILE | sed 's/[^ ]* *//; s/:.*//' | uniq` 107ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya [ "$HOST" = "$RHOSTNAME" ] || end_testcase "$RHOSTNAME is not in rwho outfile" 108ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 109ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya ruptime -a > $OUTFILE 11036531d536b405718b2520ae8ddd6b33d01b019dfSimon Xu HOST=`grep $LHOST $OUTFILE | sed 's/ .*//' | uniq` 111ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya [ "$HOST" = "$LHOST" ] || end_testcase "$LHOST is not in ruptime outfile" 11236531d536b405718b2520ae8ddd6b33d01b019dfSimon Xu HOST=`grep $RHOSTNAME $OUTFILE | sed 's/ .*//' | uniq` 113ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya [ "$HOST" = "$RHOSTNAME" ] || end_testcase "$RHOSTNAME is not in ruptime outfile" 114ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 11536531d536b405718b2520ae8ddd6b33d01b019dfSimon Xu tst_resm TINFO "Test $TST_COUNT of $NUMLOOPS complete" 116ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya incr_tst_count 117ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya done 118865695bbc89088b9526ea9045410e5afb70a985cplars} 119865695bbc89088b9526ea9045410e5afb70a985cplars 120865695bbc89088b9526ea9045410e5afb70a985cplars#----------------------------------------------------------------------- 121865695bbc89088b9526ea9045410e5afb70a985cplars# 122865695bbc89088b9526ea9045410e5afb70a985cplars# FUNCTION: do_cleanup 123865695bbc89088b9526ea9045410e5afb70a985cplars# 124865695bbc89088b9526ea9045410e5afb70a985cplars#----------------------------------------------------------------------- 125865695bbc89088b9526ea9045410e5afb70a985cplars 126865695bbc89088b9526ea9045410e5afb70a985cplarsdo_cleanup() 127865695bbc89088b9526ea9045410e5afb70a985cplars{ 1286850e35edd342a5aa3c2f6cb9b9a256fb6dfdd34Simon Xu if [ -n "$LHOST_PID" ]; then 129ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya tst_resm TINFO "Stopping rwhod on $LHOST" 13037550cf5a86c7ca7424a2a318dd64e550f13f5dfChris Dearman killall rwhod 131ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya fi 132ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 1336850e35edd342a5aa3c2f6cb9b9a256fb6dfdd34Simon Xu if [ -n "$RHOST_PID" ]; then 134ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya tst_resm TINFO "Stopping rwhod on $RHOST" 135ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya rsh -n -l root $RHOST "killall rwhod" 136ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya fi 137ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 138ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya tst_cleanup 139865695bbc89088b9526ea9045410e5afb70a985cplars} 140865695bbc89088b9526ea9045410e5afb70a985cplars 141865695bbc89088b9526ea9045410e5afb70a985cplars#----------------------------------------------------------------------- 142865695bbc89088b9526ea9045410e5afb70a985cplars# 143865695bbc89088b9526ea9045410e5afb70a985cplars# FUNCTION: MAIN 144865695bbc89088b9526ea9045410e5afb70a985cplars# 145865695bbc89088b9526ea9045410e5afb70a985cplars#----------------------------------------------------------------------- 146ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya. net_cmdlib.sh 147ef77253961f909f87e82e6d2b620e87af33e9665yaberauneya 148ef77253961f909f87e82e6d2b620e87af33e9665yaberauneyaread_opts $* 149865695bbc89088b9526ea9045410e5afb70a985cplarsdo_setup 150865695bbc89088b9526ea9045410e5afb70a985cplarsdo_test 1516850e35edd342a5aa3c2f6cb9b9a256fb6dfdd34Simon Xudo_cleanup 152865695bbc89088b9526ea9045410e5afb70a985cplarsend_testcase 153