File net-snmp-5.9.4-testing-empty-arptable.patch of Package net-snmp

Index: net-snmp-5.7.2/testing/rfc1213/snmpfun.sh
===================================================================
--- net-snmp-5.7.2.orig/testing/rfc1213/snmpfun.sh
+++ net-snmp-5.7.2/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: net-snmp-5.7.2/testing/rfc1213/test_fun
===================================================================
--- net-snmp-5.7.2.orig/testing/rfc1213/test_fun
+++ net-snmp-5.7.2/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
 }
 
+
openSUSE Build Service is sponsored by