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 : arp 23# 24# PURPOSE: To test the basic functionality of `arp`. 25# 26# SETUP: The "RHOST" setting should be exported to be the hostname of 27# another machine on the same subnet. Otherwise, the hostname 28# of the tested machine will be used. 29# 30# HISTORY: 31# 06/05/03 Manoj Iyer - manjo@mail.utexas.edu 32# - Ported to use LTP test harness API 33# 03/01 Robbie Williamson (robbiew@us.ibm.com) 34# -Ported 35# 36#----------------------------------------------------------------------- 37 38#----------------------------------------------------------------------- 39# 40# FUNCTION: do_setup 41# 42#----------------------------------------------------------------------- 43 44do_setup() 45{ 46 47 NUMLOOPS=${NUMLOOPS:-20} 48 TST_TOTAL=$(( $NUMLOOPS * 2 )) 49 50 tst_setup 51 exists arp grep hostname ping sleep whoami 52 53 RHOST=${RHOST:-$(hostname)} 54 SLEEPTIME=${SLEEPTIME:-1} 55 LUSER=$(whoami) 56 57 [ "$LUSER" = "root" ] || end_testcase "Must be root to run this test!" 58 59} 60 61#----------------------------------------------------------------------- 62# 63# FUNCTION: do_test 64# 65#----------------------------------------------------------------------- 66 67do_test() 68{ 69 while [ $TST_COUNT -le $NUMLOOPS ]; do 70 arp -a 2>&1 1>/dev/null || end_testcase "arp -a failed" 71 incr_tst_count 72 done 73 74 sleep $SLEEPTIME 75 76 # PURPOSE: stress the automatic creation of arp entries by pinging a host 77 # and deleting the arp entry again. 78 79 while [ $TST_COUNT -le $TST_TOTAL ]; do 80 81 ping -c1 $RHOST 2>&1 1>/dev/null || end_testcase "ping $RHOST failed" 82 83 if ! arp -a | grep "$RHOST\>" 2>&1 1>/dev/null; then 84 end_testcase "arp -a failed" 85 fi 86 87 if ! arp -d $RHOST 2>&1 1>/dev/null; then 88 end_testcase "arp -d $RHOST failed" 89 fi 90 91 incr_tst_count 92 93 sleep $SLEEPTIME 94 95 done 96 97} 98 99#----------------------------------------------------------------------- 100# FUNCTION: MAIN 101# PURPOSE: To invoke the functions to perform the tasks outlined in the 102# prologue. 103# INPUT: None. 104# OUTPUT: None. 105#----------------------------------------------------------------------- 106 107. net_cmdlib.sh 108 109read_opts $* 110do_setup 111do_test 112end_testcase 113