Index: testing/rfc1213/snmpfun.sh =================================================================== --- testing/rfc1213/snmpfun.sh.orig +++ testing/rfc1213/snmpfun.sh @@ -1,4 +1,3 @@ - # functions used by RFC-1213 MIB test modules myport=$SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT @@ -11,6 +10,23 @@ else TEST_AUTHPRIV_PARMS="-l authNoPriv -a MD5 -A testpass" fi +check_skip_arp_tests () +{ + # + # skip all tests relying on a filed arp table. e.g. on s390 boxes this + # does not have to be the case + # + TABLE_ENTRIES="at.atTable ip.ipNetToMediaTable" + ARP_COUNT=`/sbin/arp | grep -v incomplete | wc -l` + for entry in $TABLE_ENTRIES ; do + if [ "x$1" == "x$entry" -a $ARP_COUNT == 0 ] ; then + echo "skipping $1, because the arp table is empty." >&2 + return 0 + fi + done + return 1 +} + config() { rm -f $SNMP_CONFIG_FILE @@ -54,25 +70,35 @@ get_snmpv3_variable() get_snmp_table() { test_start "Access table $2 by SNMPv$1..." - CAPTURE "snmpgetnext -Of -v $1 -c test $myport $2" - CHECKFILE '' "\.$2\." - if [ "$snmp_last_test_result" = 0 ] ; then - test_finish FAIL + check_skip_arp_tests + if check_skip_arp_tests "$2" ; then + test_finish SKIPPED else - test_finish PASS + CAPTURE "snmpgetnext -Of -v $1 -c test $myport $2" + CHECKFILE '' "\.$2\." + if [ "$snmp_last_test_result" = 0 ] ; then + test_finish FAIL + else + test_finish PASS + fi fi } get_snmpv3_table() { - test_start "Access table $2 by SNMPv3..." - CAPTURE "snmpgetnext -Of -v 3 -u testrwuser $TEST_AUTHPRIV_PARMS $myport $2" - CHECKFILE '' "\.$2\." - if [ "$snmp_last_test_result" = 0 ] ; then - test_finish FAIL + test_start "Access table $2 by SNMPv3..." + if check_skip_arp_tests "$2" ; then + test_finish SKIPPED else - test_finish PASS + CAPTURE "snmpgetnext -Of -v 3 -u testrwuser $TEST_AUTHPRIV_PARMS $myport $2" + CHECKFILE '' "\.$2\." + if [ "$snmp_last_test_result" = 0 ] ; then + test_finish FAIL + else + test_finish PASS + fi fi } + Index: testing/rfc1213/test_fun =================================================================== --- testing/rfc1213/test_fun.orig +++ testing/rfc1213/test_fun @@ -51,6 +51,9 @@ test_finish() if [ x$1 == x"PASS" ];then pass_num=`expr $pass_num + 1` pass_info "PASS\n" + elif [ x$1 == x"SKIPPED" ];then + pass_num=`expr $pass_num + 1` + pass_info "SKIPPED\n" else fail_num=`expr $fail_num + 1` fail_info "FAIL\n" @@ -66,3 +69,4 @@ summary() fi } +