• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/bin/sh
2# Copyright (c) 2016 Oracle and/or its affiliates. All Rights Reserved.
3# Copyright (c) International Business Machines  Corp., 2000
4#
5# This program is free software; you can redistribute it and/or
6# modify it under the terms of the GNU General Public License as
7# published by the Free Software Foundation; either version 2 of
8# the License, or (at your option) any later version.
9#
10# This program is distributed in the hope that it would be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13# GNU General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License
16# along with this program. If not, see <http://www.gnu.org/licenses/>.
17#
18# PURPOSE: To test the basic functionality of the rwhod daemon using the
19#          `rwho` and `ruptime` commands.
20#
21
22TCID=rwho01
23TST_TOTAL=25
24TST_CLEANUP="do_cleanup"
25
26. test_net.sh
27
28LHOST_PID=
29RHOST_PID=
30
31do_setup()
32{
33	tst_check_cmds cut hostname killall rwho ruptime
34
35	LHOST=$(hostname | cut -f1 -d.)
36
37	pgrep -x rwhod > /dev/null
38	if [ $? -ne 0 ]; then
39		tst_resm TINFO "Starting rwhod on $LHOST"
40		ROD rwhod
41		LHOST_PID=$(pgrep -x rwhod)
42		[ -z "$LHOST_PID" ] && \
43			tst_brkm TBROK "Unable to start rwhod on $LHOST"
44	fi
45
46	tst_rhost_run -c "pgrep -x rwhod" > /dev/null
47	if [ $? -ne 0 ]; then
48		tst_resm TINFO "Starting rwhod on $RHOST"
49		tst_rhost_run -s -c "rwhod"
50		RHOST_PID=$(tst_rhost_run -c "pgrep -x rwhod")
51		[ -z "$RHOST_PID" ] && \
52			tst_brkm TBROK "Unable to start rwhod on $RHOST"
53	fi
54
55	RHOSTNAME=$(tst_rhost_run -c "hostname | cut -f1 -d.")
56	[ "$RHOSTNAME" ] || tst_brkm TBROK "Unable to determine RHOSTNAME"
57}
58
59do_test()
60{
61	rwho -a | grep -q $LHOST || \
62		tst_brkm TFAIL "$LHOST isn't in rwho output"
63	rwho -a | grep -q $RHOSTNAME || \
64		tst_brkm TFAIL "$RHOSTNAME isn't in rwho output"
65	ruptime -a | grep -q $LHOST || \
66		tst_brkm TFAIL "$LHOST is not in ruptime outfile"
67	ruptime -a | grep -q $RHOSTNAME || \
68		tst_brkm TFAIL "$RHOSTNAME is not in ruptime outfile"
69}
70
71do_cleanup()
72{
73	if [ "$LHOST_PID" ]; then
74		tst_resm TINFO "Stopping rwhod on $LHOST"
75		killall rwhod
76	fi
77
78	if [ "$RHOST_PID" ]; then
79		tst_resm TINFO "Stopping rwhod on $RHOST"
80		tst_rhost_run -c "killall rwhod"
81	fi
82}
83
84do_setup
85
86for i in $(seq 1 $TST_TOTAL); do
87	do_test
88	tst_resm TPASS "Test $i/$TST_COUNT complete"
89done
90
91tst_exit
92