summaryrefslogtreecommitdiff
path: root/testing/fulltests/default/T060trapdperl_simple
diff options
context:
space:
mode:
Diffstat (limited to 'testing/fulltests/default/T060trapdperl_simple')
-rwxr-xr-xtesting/fulltests/default/T060trapdperl_simple59
1 files changed, 59 insertions, 0 deletions
diff --git a/testing/fulltests/default/T060trapdperl_simple b/testing/fulltests/default/T060trapdperl_simple
new file mode 100755
index 0000000..33741e0
--- /dev/null
+++ b/testing/fulltests/default/T060trapdperl_simple
@@ -0,0 +1,59 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER 'snmptrapd embedded perl support (NetSNMP::TrapReceiver)'
+
+SKIPIF NETSNMP_DISABLE_SNMPV2C
+SKIPIFNOT NETSNMP_EMBEDDED_PERL
+SKIPIFNOT HAVE_SIGHUP
+SKIPIFNOT NETSNMP_SECMOD_USM
+
+#
+# Begin test
+#
+
+snmp_version=v2c
+TESTCOMMUNITY=testcommunity
+TESTOID=.1.3.6.1.6.3.1.1.5.1
+TESTOID2=.1.3.6.1.6.3.1.1.5.2
+VAROID=.1.3.6.1.2.1.1.4.0
+EMBPERL_LOGFILE=${SNMP_TMPDIR}/embperl.log
+
+# make sure that we can fulfill all library dependencies
+_ld_lib_path="${SNMP_UPDIR}/snmplib/.libs:${SNMP_UPDIR}/agent/.libs:${SNMP_UPDIR}/agent/helpers/.libs"
+if [ x$OSTYPE = xcygwin ]; then
+ PATH="${_ld_lib_path}:$PATH"
+fi
+
+echo "use blib qw(${SNMP_UPDIR}/perl);" > ${SNMP_TMPDIR}/snmp_perl_trapd.pl
+echo "use NetSNMP::TrapReceiver;" >> ${SNMP_TMPDIR}/snmp_perl_trapd.pl
+
+CONFIGTRAPD authcommunity execute $TESTCOMMUNITY
+CONFIGTRAPD perlInitFile ${SNMP_TMPDIR}/snmp_perl_trapd.pl
+CONFIGTRAPD 'perl sub my_receiver { open LOG,">>'$EMBPERL_LOGFILE'"; print LOG "handled_by_embperl\n"; close LOG };'
+CONFIGTRAPD 'perl sub my_receiver2 { open LOG,">>'$EMBPERL_LOGFILE'"; print LOG "handled_again_by_embperl\n"; close LOG };'
+CONFIGTRAPD 'perl NetSNMP::TrapReceiver::register("'$TESTOID'", \&my_receiver) || warn "register_perl_handler_failed";'
+CONFIGTRAPD 'perl NetSNMP::TrapReceiver::register("'$TESTOID2'", \&my_receiver2) || warn "register_second_perl_handler_failed";'
+CONFIGTRAPD 'perl print STDERR "registered_perl_handler_ok\n";'
+CONFIGTRAPD agentxsocket /dev/null
+
+STARTTRAPD
+
+## 1) trigger embedded perl notification handler
+
+CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 $TESTOID $VAROID s handled_trap_$snmp_version"
+
+## 2) persistency: reconfigure (SIGHUP), re-trigger
+
+HUPTRAPD
+CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 $TESTOID2 $VAROID s handled_trap2_$snmp_version"
+
+## stop
+STOPTRAPD
+
+
+CHECKORDIE "handled_by_embperl" $EMBPERL_LOGFILE
+CHECKORDIE "handled_again_by_embperl" $EMBPERL_LOGFILE
+
+FINISHED