1#!/bin/sh 2 3. ../support/simple_eval_tools.sh 4 5HEADER "extending agent functionality with pass_persist" 6 7SKIPIF NETSNMP_DISABLE_SNMPV2C 8SKIPIFNOT USING_UCD_SNMP_PASS_PERSIST_MODULE 9 10# Don't run this test on MinGW - local/pass_persisttest is a shell script and 11# hence passing it to the MSVCRT popen() doesn't work. 12[ "x$OSTYPE" = "xmsys" ] && SKIP "MinGW" 13 14[ -x /usr/bin/perl ] || SKIP "/usr/bin/perl not found" 15 16# make sure snmpget and snmpwalk can be executed 17SNMPGET="${builddir}/apps/snmpget" 18[ -x "$SNMPGET" ] || SKIP snmpget not compiled 19SNMPWALK="${builddir}/apps/snmpwalk" 20[ -x "$SNMPWALK" ] || SKIP snmpwalk not compiled 21 22snmp_version=v2c 23TESTCOMMUNITY=testcommunity 24. ./Sv2cconfig 25 26# 27# Begin test 28# 29oid=.1.3.6.1.4.1.8072.2.255 # NET-SNMP-PASS-MIB::netSnmpPassExamples 30CONFIGAGENT pass_persist $oid ${srcdir}/local/pass_persisttest 31 32ORIG_AGENT_FLAGS="$AGENT_FLAGS" 33AGENT_FLAGS="$ORIG_AGENT_FLAGS -Ducd-snmp/pass_persist" 34PASS_PERSIST_PIDFILE="$SNMP_TMPDIR/pass_persist.pid.$$" 35export PASS_PERSIST_PIDFILE 36STARTAGENT 37 38#COMMENT Check a full walk of the sample data 39CAPTURE "$SNMPWALK $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT $oid" 40CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassString.0 = STRING: Life, the Universe, and Everything" 41CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassInteger.1 = INTEGER: 42" 42CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassOID.1 = OID: NET-SNMP-PASS-MIB::netSnmpPassOIDValue" 43CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassTimeTicks.0 = Timeticks: (363136200) 42 days, 0:42:42.00 " 44CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassIpAddress.0 = IpAddress: 127.0.0.1" 45CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassCounter.0 = Counter32: 1" 46CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassGauge.0 = Gauge32: 42" 47CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassCounter64.0 = Counter64: 9223372036854775806" 48CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassInteger64.0 = Opaque: Int64: 9223372036854775807" 49 50#COMMENT A couple of spot checks of GET requests. 51CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT NET-SNMP-PASS-MIB::netSnmpPassInteger.1" 52CHECKORDIE "INTEGER: 42" 53 54#COMMENT netSnmpPassCounter should increment, since this is pass_persist 55CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT NET-SNMP-PASS-MIB::netSnmpPassCounter.0" 56CHECKORDIE "Counter32: 2" 57 58#COMMENT now kill the pass_persist script, and check that it recovers. 59STOPPROG $PASS_PERSIST_PIDFILE 60#COMMENT netSnmpPassCounter should have reverted to 1, as this is a new instance. 61CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT NET-SNMP-PASS-MIB::netSnmpPassCounter.0" 62CHECKORDIE "Counter32: 1" 63 64STOPAGENT 65FINISHED 66