blob: 6fe3639abd007ee7597ba85f6953f3d36f35d552 [file] [log] [blame]
#!/bin/sh
# Copyright (c) 2017 Oracle and/or its affiliates. All Rights Reserved.
# 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 would 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, see <http://www.gnu.org/licenses/>.
TCID="rpcinfo01"
TST_TOTAL=16
TST_CLEANUP=tst_rmdir
. test_net.sh
do_setup()
{
tst_resm TINFO "Checking for portmap or rpcbind"
if pgrep portmap > /dev/null; then
PORTMAPPER="portmap"
else
pgrep rpcbind > /dev/null && PORTMAPPER="rpcbind" || \
tst_brkm TCONF "portmap or rpcbind is not running"
fi
tst_tmpdir
# Create file with 1 tcp and 1 udp line. Use for variable assignments.
rpcinfo -p $(tst_ipaddr) | grep tcp | sed -n 2p > rpc_out
rpcinfo -p $(tst_ipaddr) | grep udp | sed -n 2p >> rpc_out
wc -l rpc_out | grep "2" > /dev/null || \
tst_brkm TBROK "Not enough programs registered on $(tst_ipaddr)"
# Using "rpc_out" file created above, assign variables for rpcinfo opts
TPNUM=`grep tcp rpc_out | awk '{print $1}'`
TVNUM=`grep tcp rpc_out | awk '{print $2}'`
TCPNAME=`grep tcp rpc_out | awk '{print $5}'`
UPNUM=`grep udp rpc_out | awk '{print $1}'`
UVNUM=`grep udp rpc_out | awk '{print $2}'`
UDPNAME=`grep udp rpc_out | awk '{print $5}'`
}
do_test()
{
local thost="$(tst_ipaddr)"
EXPECT_RHOST_PASS rpcinfo -p $thost | grep -q portmapper
EXPECT_RHOST_PASS rpcinfo -t $thost $TPNUM
EXPECT_RHOST_PASS rpcinfo -t $thost $TPNUM $TVNUM
EXPECT_RHOST_PASS rpcinfo -t $thost $TCPNAME
EXPECT_RHOST_PASS rpcinfo -t $thost $TCPNAME $TVNUM
EXPECT_RHOST_PASS rpcinfo -u $thost 100000
EXPECT_RHOST_PASS rpcinfo -u $thost 100000 2
EXPECT_RHOST_PASS rpcinfo -u $thost portmapper
EXPECT_RHOST_PASS rpcinfo -u $thost portmapper 2
tst_resm TINFO "Test rpcinfo with missing or bad options"
EXPECT_RHOST_FAIL rpcinfo -p bogushost
EXPECT_RHOST_FAIL rpcinfo -bogusflag
EXPECT_RHOST_FAIL rpcinfo -t $thost
EXPECT_RHOST_FAIL rpcinfo -u $thost
EXPECT_RHOST_FAIL rpcinfo -u $thost bogusprog
EXPECT_RHOST_FAIL rpcinfo -u $thost 11579
EXPECT_RHOST_FAIL rpcinfo -u $thost 100000 5
}
do_setup
do_test
tst_exit