Home | History | Annotate | Download | only in rup
      1 #!/bin/sh
      2 #
      3 #
      4 #   Copyright (c) International Business Machines  Corp., 2000
      5 #
      6 #   This program is free software;  you can redistribute it and/or modify
      7 #   it under the terms of the GNU General Public License as published by
      8 #   the Free Software Foundation; either version 2 of the License, or
      9 #   (at your option) any later version.
     10 #
     11 #   This program is distributed in the hope that it will be useful,
     12 #   but WITHOUT ANY WARRANTY;  without even the implied warranty of
     13 #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
     14 #   the GNU General Public License for more details.
     15 #
     16 #   You should have received a copy of the GNU General Public License
     17 #   along with this program;  if not, write to the Free Software
     18 #   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
     19 #
     20 #
     21 #
     22 #  FILE             : rup
     23 #
     24 #  TEST DESCRIPTION : Basic test for the `rup` command.
     25 #
     26 #  SETUP: The home directory of root on the machine exported as "RHOST"
     27 #         MUST have a ".rhosts" file with the hostname of the machine
     28 #         where the test is executed.
     29 #
     30 #  HISTORY:
     31 #    04/18/01 Robbie Williamson (robbiew (at] us.ibm.com)
     32 #      -Written
     33 #
     34 # CMD      FLAG      ARGS
     35 # rup
     36 # rup                rem_host
     37 # rup	    -d
     38 # rup       -h
     39 # rup       -t
     40 # rup       -l
     41 # rup                bogus_host
     42 # rup      -bogus_flag
     43 #***********************************************************************
     44 #Uncomment line below for debug output.
     45 #trace_logic=${trace_logic:-"set -x"}
     46 
     47 $trace_logic
     48 this_file=${0##*/}
     49 TC=rup01
     50 TCtmp=${TCtmp:=`pwd`}
     51 TCbin=${TCbin:=`pwd`}
     52 TCsrc=${TCsrc:=$TCbin}
     53 LUSER=${LUSER:=root}
     54 RHOST=${RHOST:=`hostname`}
     55 CLEANUP=${CLEANUP:="ON"}
     56 PID=0
     57 export TCID=$TC
     58 export TST_TOTAL=1
     59 export TST_COUNT=1
     60 
     61 #=============================================================================
     62 # FUNCTION NAME:        do_test
     63 #
     64 # FUNCTION DESCRIPTION: Perform the test
     65 #
     66 # PARAMETERS:           None.
     67 #
     68 # RETURNS:              None.
     69 #=============================================================================
     70 do_test()
     71 {
     72 $trace_logic
     73 
     74 echo "Checking for rstatd on $RHOST"
     75 
     76 rpcinfo -u $RHOST rstatd 3 > /dev/null 2>&1
     77 if [ $? -ne 0 ]; then
     78   echo "Attempting to start rstatd on $RHOST"
     79   rsh -n -l root $RHOST "/usr/sbin/rpc.rstatd &"
     80   [ $? -eq 0 ] || end_testcase "rstatd is inactive on $RHOST"
     81   PID=`rsh -n $RHOST ps -ewf | grep rstatd | awk '{print $2 }'`
     82   echo "rstatd started on $RHOST"
     83 fi
     84 
     85 echo "Test rup with defaults....please be patient"
     86 # rusers with no options broadcasts over the net and reports
     87 # responses as it receives them. Time-out for responses is approx. 2 minutes.
     88 
     89 echo "rup"
     90 rup
     91 [ $? -eq 0 ] || end_testcase "rup with defaults - failed"
     92 
     93 echo "Test rusers with options set...please be patient"
     94 # Go through matrix of rup options:
     95 
     96 echo "rup $RHOST"
     97 rup $RHOST | grep $RHOST
     98 [ $? -eq 0 ] || end_testcase "rup $RHOST - failed"
     99 
    100 echo "rup -d"
    101 rup -d
    102 [ $? -eq 0 ] || end_testcase "rup -d - failed"
    103 
    104 echo "rup -h"
    105 rup -h
    106 [ $? -eq 0 ] || end_testcase "rup -h - failed"
    107 
    108 echo "rup -l"
    109 rup -l
    110 [ $? -eq 0 ] || end_testcase "rup -l - failed"
    111 
    112 echo "rup -t"
    113 rup -t
    114 [ $? -eq 0 ] || end_testcase "rup -t - failed"
    115 
    116 echo "Test rusers with bad options"
    117 echo "rup <invalid hostname>"
    118 rup bogushost > /dev/null 2>&1
    119 [ $? -ne 0 ] || end_testcase "rup <invalid hostname> should fail"
    120 
    121 echo "rup -<invalid flag>"
    122 rup -bogusflag > /dev/null 2>&1
    123 [ $? -eq 1 ] || end_testcase "rup -<invalid flag> should fail"
    124 }
    125 
    126 #=============================================================================
    127 # FUNCTION NAME:        do_cleanup
    128 #
    129 # FUNCTION DESCRIPTION: Clean up
    130 #
    131 # PARAMETERS:           None.
    132 #
    133 # RETURNS:              None.
    134 #=============================================================================
    135 do_cleanup()
    136 {
    137     $trace_logic
    138 
    139     if [ "$PID" != 0 ]; then
    140         # Kill rup on remote machine
    141         rsh -n $RHOST kill -15 $PID
    142         echo "rstatd daemon stopped on $RHOST"
    143     fi
    144 }
    145 
    146 #=============================================================================
    147 # FUNCTION NAME:        end_testcase
    148 #
    149 # FUNCTION DESCRIPTION: Clean up
    150 #
    151 # PARAMETERS:           string, IF AND ONLY IF the testcase fails
    152 #
    153 # RETURNS:              None.
    154 #=============================================================================
    155 
    156 end_testcase()
    157 {
    158    $trace_logic
    159    echo "$this_file: doing $0."
    160    if [ "$CLEANUP" = "ON" ]; then
    161      do_cleanup
    162    fi
    163 
    164    [ $# = 0 ] && { tst_resm TPASS "Test Successful"; exit 0; }
    165    tst_resm TFAIL "Test Failed: $@"
    166    exit 1
    167 }
    168 
    169 #=============================================================================
    170 # MAIN PROCEDURE
    171 #=============================================================================
    172 
    173 do_test
    174 end_testcase
    175