head     1.1;
branch   1.1.1;
access   ;
symbols  LTP_20031204:1.1.1.1 LINUX_TEST_PROJECT:1.1.1;
locks    ; strict;
comment  @# @;


1.1
date     2003.12.31.09.00.20;  author mtm;  state Exp;
branches 1.1.1.1;
next     ;

1.1.1.1
date     2003.12.31.09.00.20;  author mtm;  state Exp;
branches ;
next     ;


desc
@@



1.1
log
@Initial revision
@
text
@#! /bin/sh
#
#   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 will 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, write to the Free Software
#   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
#
#
#  FILE             : mc_cmds
#  TEST DESCRIPTION : To determine the stability of the IP Multicast product
#                and to verify the accuracy and usablility of IP Multicast
#                related publications associated with changes and/or
#                additions to command level interfaces for this implementations
#                of IP Multicast.
#  HISTORY:
#    03/26/01 Robbie Williamson (robbiew@@us.ibm.com)
#      -Ported
#
#*******************************************************************************

#Uncomment line below for debug output.
#trace_logic=${trace_logic:-"set -x"}
$trace_logic

TC=mc_cmds
PING_OUT=/tmp/${TC}_out
LTPROOT=${LTPROOT:-../../../..}
HOSTNAME=`hostname`
CLEANUP=${CLEANUP:-ON}
#*******************************************************************************
#
# FUNCTION:  do_test
# PURPOSE:   Test changes to ifconfig, netstat, and ping commands
# INPUT:     None
# OUTPUT:    Error messages are logged when any verification test
#            fails.
#
#-----------------------------------------------------------------------
do_test()
{
   $trace_logic
   echo "Getting ALL enabled interfaces which are configured !"

   IFNAME=$INTERFACE
   IFNAME=${INTERFACE:-$(netstat -in | grep "^[b-z]\{2,4\}[0-9][^*]"|\
      awk '{print $1}')} 
   IPADDR=${IPADDR:-$($LTPROOT/tools/gethost `hostname` | grep addresses: | awk '{print $2}')}

   echo "Testing ifconfig and netstat"

   # See if interface can be used for IP Multicast
   ifconfig $IFNAME | grep -q MULTICAST
   if [ $? != 0 ]; then
	end_testcase "Multicast not listed for $IFNAME"
   fi
   netstat -gn | grep $IFNAME | grep -q 224.0.0.1
   [ $? = 0 ] || end_testcase "all-host-group for $IFNAME not joined"

   # Do the ping tests: Execute ping 224.0.0.1 - Verify that the proper 
   # number of responses are returned.

   echo "Ping all-host-groups address(over default route!)"
   ping -c2 224.0.0.1 > $PING_OUT
   [ $? = 0 ] || end_testcase "No response from MC hosts to ping 224.0.0.1"

   echo "Ping all-host-groups over specified interface"
   ping -c2 -I $IPADDR 224.0.0.1 > $PING_OUT
   [ $? = 0 ] || end_testcase "No response from MC hosts to ping -c2 -I$IPADDR 224.0.0.1"
   grep -q $IPADDR $PING_OUT
   [ $? = 0 ] || end_testcase "Local host did not respond to ping -c2 -I$IPADDR 224.0.0.1"


}

#-----------------------------------------------------------------------
#
# FUNCTION:     do_cleanup
# PURPOSE:      Called when the testcase is interrupted by the user
#               or by interrupt_testcase() when time limit expired
# INPUT:        None.
# OUTPUT:       None.
#
#-----------------------------------------------------------------------

do_cleanup()
{
   $trace_logic
   echo "$this_file: doing $0."
   rm -rf $PING_OUT
}

#=============================================================================
# FUNCTION NAME:        end_testcase
#
# FUNCTION DESCRIPTION: Clean up
#
# PARAMETERS:           string, IF AND ONLY IF the testcase fails
#
# RETURNS:              None.
#=============================================================================

end_testcase()
{
   $trace_logic
   echo "$this_file: doing $0."

   # Call other cleanup functions
   [ $CLEANUP = "ON" ] && do_cleanup

   [ $# = 0 ] && { echo "Test Successful"; exit 0; }
   echo "Test Failed: $@@"
   exit 1
}

#*******************************************************************************
#
# FUNCTION:  MAIN
# PURPOSE:   To invoke functions that perform the tasks as described in
#            the design in the prolog above.
# INPUT:     See SETUP in the prolog above.
# OUTPUT:    Logged run results written to testcase run log
#
#*******************************************************************************
do_test
end_testcase
@


1.1.1.1
log
@Initial import of the Linux Test Project (http://ltp.sourceforge.net).

This import is minus the Posix test suite, which will be imported separately,
and the HPI suite, which doesn't concern us.
@
text
@@
