diff options
Diffstat (limited to 'testing/fulltests/default')
78 files changed, 3608 insertions, 0 deletions
diff --git a/testing/fulltests/default/Sv1config b/testing/fulltests/default/Sv1config new file mode 100644 index 0000000..f3c045b --- /dev/null +++ b/testing/fulltests/default/Sv1config @@ -0,0 +1,4 @@ +#!/bin/sh + +snmp_version=v1 +. ./Svanyconfig diff --git a/testing/fulltests/default/Sv2cconfig b/testing/fulltests/default/Sv2cconfig new file mode 100644 index 0000000..375e087 --- /dev/null +++ b/testing/fulltests/default/Sv2cconfig @@ -0,0 +1,4 @@ +#!/bin/sh + +snmp_version=v2c +. ./Svanyconfig diff --git a/testing/fulltests/default/Sv3config b/testing/fulltests/default/Sv3config new file mode 100644 index 0000000..55df5b4 --- /dev/null +++ b/testing/fulltests/default/Sv3config @@ -0,0 +1,46 @@ +#!/bin/sh + +SKIPIFNOT NETSNMP_SECMOD_USM + +[ "x$SNMP_SMUX_SOCKET" = "x" ] && SNMP_SMUX_SOCKET=1.0.0.0 + +CONFIGAGENT [snmp] persistentdir $SNMP_TMP_PERSISTENTDIR +CONFIGAGENT smuxsocket $SNMP_SMUX_SOCKET + +# XXX: auto-switch to a supported protocol instead. +if test "x$DEFAUTHTYPE" = "x"; then + if grep '^#define NETSNMP_USE_OPENSSL 1' $SNMP_UPDIR/include/net-snmp/net-snmp-config.h $SNMP_UPDIR/include/net-snmp/agent/mib_module_config.h > /dev/null ; then + DEFAUTHTYPE="SHA" + else + DEFAUTHTYPE="MD5" + fi +fi + +if test "x$DEFPRIVTYPE" = "x"; then + # XXX: HAVE_AES depends on cpp logic, so we need to test for lower-level stuff + if grep '^#define NETSNMP_USE_OPENSSL 1' $SNMP_UPDIR/include/net-snmp/net-snmp-config.h $SNMP_UPDIR/include/net-snmp/agent/mib_module_config.h > /dev/null ; then + if grep '^#define HAVE_OPENSSL_AES_H 1' $SNMP_UPDIR/include/net-snmp/net-snmp-config.h $SNMP_UPDIR/include/net-snmp/agent/mib_module_config.h > /dev/null ; then + if grep '^#define HAVE_AES_CFB128_ENCRYPT 1' $SNMP_UPDIR/include/net-snmp/net-snmp-config.h $SNMP_UPDIR/include/net-snmp/agent/mib_module_config.h > /dev/null ; then + DEFPRIVTYPE="AES" + else + DEFPRIVTYPE="DES" + fi + else + DEFPRIVTYPE="DES" + fi + else + DEFPRIVTYPE="" + fi +fi + +CONFIGAGENT createUser initial $DEFAUTHTYPE initial_test_pass_auth $DEFPRIVTYPE +CONFIGAGENT createUser template $DEFAUTHTYPE template_test_pass_auth $DEFPRIVTYPE +CONFIGAGENT rwuser initial noauth +CONFIGAGENT rwuser newtestuser + +NOAUTHTESTARGS="-l nanp -u initial -v 3" +AUTHTESTARGS="-l anp -u initial -v 3 -a $DEFAUTHTYPE -A initial_test_pass_auth" +PRIVTESTARGS="-l ap -u initial -v 3 -a $DEFAUTHTYPE -A initial_test_pass_auth -x $DEFPRIVTYPE -X initial_test_pass_auth" + +AUTHNOPASSTESTARGS="-l anp -u initial -v 3 -a $DEFAUTHTYPE" +PRIVNOPASSTESTARGS="-l ap -u initial -v 3 -a $DEFAUTHTYPE -x $DEFPRIVTYPE" diff --git a/testing/fulltests/default/Sv3usmconfigagent b/testing/fulltests/default/Sv3usmconfigagent new file mode 100644 index 0000000..72aaffa --- /dev/null +++ b/testing/fulltests/default/Sv3usmconfigagent @@ -0,0 +1,23 @@ +#!/bin/sh +# +# SNMPv3 USM config for snmpd +# + +## common SNMPv3 USM config +. ./Sv3usmconfigbase + +## standard config +CONFIGAGENT [snmp] persistentdir $SNMP_TMP_PERSISTENTDIR +[ "x$SNMP_SMUX_SOCKET" = "x" ] && SNMP_SMUX_SOCKET=1.0.0.0 +CONFIGAGENT smuxsocket $SNMP_SMUX_SOCKET +[ "x$CREATEAUTHUSER" != "x" ] && CONFIGAGENT $CREATEAUTHUSER +[ "x$CREATEAUTHUSER2" != "x" ] && CONFIGAGENT $CREATEAUTHUSER2 +[ "x$CREATEPRIVUSER" != "x" ] && CONFIGAGENT $CREATEPRIVUSER +[ "x$CREATEPRIVUSER2" != "x" ] && CONFIGAGENT $CREATEPRIVUSER2 +CONFIGAGENT rwuser $TESTAUTHUSER auth +CONFIGAGENT rwuser $TESTPRIVUSER priv + +CONFIGAGENT_ENGINEID() { + AGENT_ENGINEID=0x80001f88801ff4905ea7804943 + CONFIGAGENT oldEngineID $AGENT_ENGINEID +} diff --git a/testing/fulltests/default/Sv3usmconfigbase b/testing/fulltests/default/Sv3usmconfigbase new file mode 100644 index 0000000..d2fb981 --- /dev/null +++ b/testing/fulltests/default/Sv3usmconfigbase @@ -0,0 +1,100 @@ +#!/bin/sh +# +# SNMPv3 base config +# +# Input+Output variables: +# DEFSECURITYLEVEL noAuthNoPriv|authNoPriv|authPriv +# DEFAUTHTYPE MD5|SHA +# DEFPRIVTYPE DES|AES +# TESTNOAUTHUSER <myuser> +# TEST(AUTH|PRIV)USER[2] <myuser> +# TEST(AUTH|PRIV)PASS[2] <mypass> +# +# Input variables: +# CREATEUSERENGINEID <engineid> +# +# Output variables: +# CREATEAUTHUSER[2] +# CREATEPRIVUSER[2] +# CREATENOAUTHUSER +# TESTNOAUTHARGS +# TESTAUTHARGS[NOPASS][2] +# TESTPRIVARGS[NOPASS][2] +# + +SKIPIFNOT NETSNMP_SECMOD_USM + +## Defaults +[ "x$DEFSECURITYLEVEL" = "x" ] && DEFSECURITYLEVEL=authPriv + +## auto-probe best auth type +if grep '^#define NETSNMP_USE_OPENSSL 1' $SNMP_UPDIR/include/net-snmp/net-snmp-config.h $SNMP_UPDIR/include/net-snmp/agent/mib_module_config.h > /dev/null ; then + MAXAUTHTYPE=SHA +elif grep '^#define NETSNMP_USE_INTERNAL_CRYPTO 1' $SNMP_UPDIR/include/net-snmp/net-snmp-config.h $SNMP_UPDIR/include/net-snmp/agent/mib_module_config.h > /dev/null ; then + MAXAUTHTYPE=SHA +else + # MD5 is always available internally + MAXAUTHTYPE=MD5 +fi + +## auto-probe best priv type +# XXX: HAVE_AES depends on cpp logic, so we need to test for lower-level stuff +if grep '^#define NETSNMP_USE_OPENSSL 1' $SNMP_UPDIR/include/net-snmp/net-snmp-config.h $SNMP_UPDIR/include/net-snmp/agent/mib_module_config.h > /dev/null; then + if grep '^#define HAVE_OPENSSL_AES_H 1' $SNMP_UPDIR/include/net-snmp/net-snmp-config.h $SNMP_UPDIR/include/net-snmp/agent/mib_module_config.h > /dev/null && \ + grep '^#define HAVE_AES_CFB128_ENCRYPT 1' $SNMP_UPDIR/include/net-snmp/net-snmp-config.h $SNMP_UPDIR/include/net-snmp/agent/mib_module_config.h > /dev/null ; then + MAXPRIVTYPE=AES + else + MAXPRIVTYPE=DES + fi +elif grep '^#define NETSNMP_USE_INTERNAL_CRYPTO 1' $SNMP_UPDIR/include/net-snmp/net-snmp-config.h $SNMP_UPDIR/include/net-snmp/agent/mib_module_config.h > /dev/null; then + MAXPRIVTYPE=AES +else + MAXPRIVTYPE="" +fi + +CREATEUSERCMD="createUser" +[ "x$CREATEUSERENGINEID" != "x" ] && CREATEUSERCMD="$CREATEUSERCMD -e $CREATEUSERENGINEID" + +## auth setup +if [ "x$DEFSECURITYLEVEL" = "xauthPriv" -o "x$DEFSECURITYLEVEL" = "xauthNoPriv" ]; then + [ "x$MAXAUTHTYPE" = "x" ] && SKIP + [ "x$DEFAUTHTYPE" = "xSHA" -a "x$MAXAUTHTYPE" != "xSHA" ] && SKIP + [ "x$DEFAUTHTYPE" = "x" ] && DEFAUTHTYPE=$MAXAUTHTYPE + # user/pass setup (XXX: randomize) + [ "x$TESTAUTHUSER" = "x" ] && TESTAUTHUSER=initial_auth + [ "x$TESTAUTHUSER2" = "x" ] && TESTAUTHUSER2=template_auth + [ "x$TESTAUTHPASS" = "x" ] && TESTAUTHPASS=initial_test_pass_auth + [ "x$TESTAUTHPASS2" = "x" ] && TESTAUTHPASS2=template_test_pass_auth + CREATEAUTHUSER="$CREATEUSERCMD $TESTAUTHUSER $DEFAUTHTYPE $TESTAUTHPASS" + CREATEAUTHUSER2="$CREATEUSERCMD $TESTAUTHUSER2 $DEFAUTHTYPE $TESTAUTHPASS2" + # command args + TESTAUTHARGSNOPASS="-v 3 -l anp -u $TESTAUTHUSER -a $DEFAUTHTYPE" + TESTAUTHARGSNOPASS2="-v 3 -l anp -u $TESTAUTHUSER2 -a $DEFAUTHTYPE" + TESTAUTHARGS="$TESTAUTHARGSNOPASS -A $TESTAUTHPASS" + TESTAUTHARGS2="$TESTAUTHARGSNOPASS2 -A $TESTAUTHPASS2" +fi + +## priv setup +if [ "x$DEFSECURITYLEVEL" = "xauthPriv" ]; then + [ "x$MAXPRIVTYPE" = "x" ] && SKIP + [ "x$DEFPRIVTYPE" = "xAES" -a "x$MAXPRIVTYPE" != "xAES" ] && SKIP + [ "x$DEFPRIVTYPE" = "x" ] && DEFPRIVTYPE=$MAXPRIVTYPE + # user/pass setup (XXX: randomize) + [ "x$TESTPRIVUSER" = "x" ] && TESTPRIVUSER=initial_priv + [ "x$TESTPRIVUSER2" = "x" ] && TESTPRIVUSER2=template_priv + [ "x$TESTPRIVPASS" = "x" ] && TESTPRIVPASS=initial_test_pass_priv + [ "x$TESTPRIVPASS2" = "x" ] && TESTPRIVPASS2=template_test_pass_priv + CREATEPRIVUSER="$CREATEUSERCMD $TESTPRIVUSER $DEFAUTHTYPE $TESTAUTHPASS $DEFPRIVTYPE $TESTPRIVPASS" + CREATEPRIVUSER2="$CREATEUSERCMD $TESTPRIVUSER2 $DEFAUTHTYPE $TESTAUTHPASS2 $DEFPRIVTYPE $TESTPRIVPASS2" + # command args + TESTPRIVARGSNOPASS="-v 3 -l ap -u $TESTPRIVUSER -a $DEFAUTHTYPE -x $DEFPRIVTYPE" + TESTPRIVARGSNOPASS2="-v 3 -l ap -u $TESTPRIVUSER2 -a $DEFAUTHTYPE -x $DEFPRIVTYPE" + TESTPRIVARGS="$TESTPRIVARGSNOPASS -A $TESTAUTHPASS -X $TESTPRIVPASS" + TESTPRIVARGS2="$TESTPRIVARGSNOPASS2 -A $TESTAUTHPASS2 -X $TESTPRIVPASS2" +fi + +## noauth setup +[ "x$TESTNOAUTHUSER" = "x" ] && TESTNOAUTHUSER=initial +TESTNOAUTHARGS="-v 3 -l nanp -u $TESTNOAUTHUSER" +CREATENOAUTHUSER="$CREATEUSERCMD $TESTNOAUTHUSER" + diff --git a/testing/fulltests/default/Sv3usmconfigtrapd b/testing/fulltests/default/Sv3usmconfigtrapd new file mode 100644 index 0000000..4938959 --- /dev/null +++ b/testing/fulltests/default/Sv3usmconfigtrapd @@ -0,0 +1,19 @@ +#!/bin/sh +# +# SNMPv3 USM config for snmptrapd +# + +TRAPD_ENGINEID=0x80001f88802b3d0e06bbdf4e43 + +## common SNMPv3 USM config +. ./Sv3usmconfigbase + +## standard config +CONFIGTRAPD [snmp] persistentDir $SNMP_TMP_PERSISTENTDIR +CONFIGTRAPD oldEngineID $TRAPD_ENGINEID +[ "x$CREATENOAUTHUSER" != "x" ] && CONFIGTRAPD $CREATENOAUTHUSER +[ "x$CREATEAUTHUSER" != "x" ] && CONFIGTRAPD $CREATEAUTHUSER +[ "x$CREATEAUTHUSER2" != "x" ] && CONFIGTRAPD $CREATEAUTHUSER2 +[ "x$CREATEPRIVUSER" != "x" ] && CONFIGTRAPD $CREATEPRIVUSER +[ "x$CREATEPRIVUSER2" != "x" ] && CONFIGTRAPD $CREATEPRIVUSER2 + diff --git a/testing/fulltests/default/Sv3vacmconfig b/testing/fulltests/default/Sv3vacmconfig new file mode 100644 index 0000000..7c35e36 --- /dev/null +++ b/testing/fulltests/default/Sv3vacmconfig @@ -0,0 +1,29 @@ +#!/bin/sh + +# generically set up the user "initial1" and "initial2" for snmp v3 +# access to the agent. + +# Configuration: +#initial1 can access .1.3.6.1.2.1.1.1, deny others +#initial2 can access all except .1.3.6.1.2.1.1.1 + +# XXX: do autoselection of supported algorithms +SKIPIF NETSNMP_DISABLE_MD5 +SKIPIF NETSNMP_DISABLE_DES +SKIPIFNOT NETSNMP_SECMOD_USM + +CONFIGAGENT [snmp] persistentdir $SNMP_TMP_PERSISTENTDIR + +CONFIGAGENT createUser initial1 MD5 initial_test_pass_auth DES +CONFIGAGENT createUser initial2 MD5 initial_test_pass_auth DES + + +CONFIGAGENT group testcommunitygroup1 usm initial1 +CONFIGAGENT group testcommunitygroup2 usm initial2 + +CONFIGAGENT view system1 included .1.3.6.1.2.1.1.1 +CONFIGAGENT view system2 included .1 +CONFIGAGENT view system2 excluded .1.3.6.1.2.1.1.1 +CONFIGAGENT 'access testcommunitygroup1 "" any auth exact system1 none none' +CONFIGAGENT 'access testcommunitygroup2 "" any auth exact system2 none none' + diff --git a/testing/fulltests/default/Svacmconfig b/testing/fulltests/default/Svacmconfig new file mode 100644 index 0000000..d9d862d --- /dev/null +++ b/testing/fulltests/default/Svacmconfig @@ -0,0 +1,40 @@ +#!/bin/sh + +# standard V1 configuration: testcommunity1 testcommunity2 +# testcommunity1 can access .1.3.6.1.2.1.1.1, others are denied +# generically set up the community "testcommunity1 and testcommunity2" for various snmp +# version access to the agent. + +if [ "x$snmp_version" = "x" ]; then + snmp_version="any" +fi + +CONFIGAGENT [snmp] persistentdir $SNMP_TMP_PERSISTENTDIR + +CONFIGAGENT rocommunity testrocommunity 127.0.0.1 .1.3.6.1.2.1.1.5.0 +CONFIGAGENT rwcommunity testrwcommunity 127.0.0.1 .1.3.6.1.2.1.1.5.0 + +CONFIGAGENT com2sec testcommunitysec1 default testcommunity1 +CONFIGAGENT com2sec testcommunitysec2 default testcommunity2 + +if [ "$SNMP_TRANSPORT_SPEC" = "udp6" -o "$SNMP_TRANSPORT_SPEC" = "tcp6" ];then +CONFIGAGENT rocommunity6 testrocommunity ::1 .1.3.6.1.2.1.1.5.0 +CONFIGAGENT rwcommunity6 testrwcommunity ::1 .1.3.6.1.2.1.1.5.0 +CONFIGAGENT com2sec6 testcommunitysec1 default testcommunity1 +CONFIGAGENT com2sec6 testcommunitysec2 default testcommunity2 +fi + +if [ "$SNMP_TRANSPORT_SPEC" = "unix" ];then +CONFIGAGENT com2secunix testcommunitysec1 testcommunity1 +CONFIGAGENT com2secunix testcommunitysec2 testcommunity2 +fi + +CONFIGAGENT group testcommunitygroup1 $snmp_version testcommunitysec1 +CONFIGAGENT group testcommunitygroup2 $snmp_version testcommunitysec2 + +CONFIGAGENT view system1 included .1.3.6.1.2.1.1.1 +CONFIGAGENT view system2 included .1 +CONFIGAGENT view system2 excluded .1.3.6.1.2.1.1.1 +CONFIGAGENT 'access testcommunitygroup1 "" any noauth exact system1 none none' +CONFIGAGENT 'access testcommunitygroup2 "" any noauth exact system2 none none' + diff --git a/testing/fulltests/default/Svanyconfig b/testing/fulltests/default/Svanyconfig new file mode 100644 index 0000000..8cb53dc --- /dev/null +++ b/testing/fulltests/default/Svanyconfig @@ -0,0 +1,29 @@ +#!/bin/sh + +# generically set up the community "testcommunity" for various snmp +# version access to the agent. + +if [ "x$snmp_version" = "x" ]; then + snmp_version="any" +fi +if [ "x$snmp_write_access" = "x" ]; then + snmp_write_access="none" +fi + +[ "x$SNMP_SMUX_SOCKET" = "x" ] && SNMP_SMUX_SOCKET=1.0.0.0 + +CONFIGAGENT [snmp] persistentdir $SNMP_TMP_PERSISTENTDIR +CONFIGAGENT smuxsocket $SNMP_SMUX_SOCKET + +CONFIGAGENT com2sec testcommunitysec default testcommunity +if [ "$SNMP_TRANSPORT_SPEC" = "udp6" -o "$SNMP_TRANSPORT_SPEC" = "tcp6" ];then + CONFIGAGENT com2sec6 testcommunitysec default testcommunity +fi + +if [ "$SNMP_TRANSPORT_SPEC" = "unix" ];then + CONFIGAGENT com2secunix testcommunitysec testcommunity +fi + +CONFIGAGENT group testcommunitygroup $snmp_version testcommunitysec +CONFIGAGENT view all included .1 80 +CONFIGAGENT "access testcommunitygroup '' any noauth exact all $snmp_write_access none" diff --git a/testing/fulltests/default/T000configure_simple b/testing/fulltests/default/T000configure_simple new file mode 100644 index 0000000..2e2b4ef --- /dev/null +++ b/testing/fulltests/default/T000configure_simple @@ -0,0 +1,22 @@ +#!/bin/sh + +if test -f ../support/simple_eval_tools.sh ; then + . ../support/simple_eval_tools.sh + versionfile=$SNMP_BASEDIR/../../../dist/autoconf-version + configurefile=$SNMP_BASEDIR/../../../configure +else + . ../eval_tools.sh + versionfile=$SNMP_BASEDIR/../dist/autoconf-version + configurefile=$SNMP_BASEDIR/../configure +fi + +HEADER Checking the Net-SNMP configure script validity + +VERSIONNEEDED=`cat $versionfile` + +CHECKORDIE "^# Generated by GNU Autoconf $VERSIONNEEDED for Net-SNMP " \ + "$configurefile" +SAVE_RESULTS + +echo "bogus" > $SNMP_TMPDIR/foo.pid +FINISHED diff --git a/testing/fulltests/default/T001snmpv1get_simple b/testing/fulltests/default/T001snmpv1get_simple new file mode 100644 index 0000000..07d3847 --- /dev/null +++ b/testing/fulltests/default/T001snmpv1get_simple @@ -0,0 +1,37 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER SNMPv1 support + +SKIPIF NETSNMP_DISABLE_SNMPV1 +SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE + +# +# Begin test +# + +# standard V1 configuration: testcomunnity +. ./Sv1config + +STARTAGENT + +CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" + +CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:" + +CAPTURE "snmpgetnext -On $SNMP_FLAGS -c testcommunity -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3" + +CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:" + +CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.1" + +CHECKORDIE "Error in packet" + +CAPTURE "snmpget -On $SNMP_FLAGS -c notavalidcommunity -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" + +CHECKORDIE "Timeout" + +STOPAGENT + +FINISHED diff --git a/testing/fulltests/default/T0141snmpv2cset_simple b/testing/fulltests/default/T0141snmpv2cset_simple new file mode 100644 index 0000000..18d9bae --- /dev/null +++ b/testing/fulltests/default/T0141snmpv2cset_simple @@ -0,0 +1,35 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER SNMPv2c set of system.sysContact.0 + +SKIPIF NETSNMP_DISABLE_SET_SUPPORT +SKIPIF NETSNMP_NO_WRITE_SUPPORT +SKIPIF NETSNMP_DISABLE_SNMPV2C +SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE + +# +# Begin test +# + +# standard V2C configuration: testcomunnity +snmp_write_access='all' +. ./Sv2cconfig +STARTAGENT + +CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0" + +CHECK ".1.3.6.1.2.1.1.4.0 = STRING:" + +CAPTURE "snmpset -On $SNMP_FLAGS -c testcommunity -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0 s foobartestingbaz" + +CHECK ".1.3.6.1.2.1.1.4.0 = STRING:" + +CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0" + +CHECK "STRING: foobartestingbaz" + +STOPAGENT + +FINISHED diff --git a/testing/fulltests/default/T014snmpv2cget_simple b/testing/fulltests/default/T014snmpv2cget_simple new file mode 100644 index 0000000..43dffd5 --- /dev/null +++ b/testing/fulltests/default/T014snmpv2cget_simple @@ -0,0 +1,24 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER SNMPv2c get of system.sysUpTime.0 + +SKIPIF NETSNMP_DISABLE_SNMPV2C +SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE + +# +# Begin test +# + +# standard V2C configuration: testcomunnity +. ./Sv2cconfig +STARTAGENT + +CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" + +STOPAGENT + +CHECK ".1.3.6.1.2.1.1.3.0 = Timeticks:" + +FINISHED diff --git a/testing/fulltests/default/T015snmpv2cgetnext_simple b/testing/fulltests/default/T015snmpv2cgetnext_simple new file mode 100644 index 0000000..7c6eaa9 --- /dev/null +++ b/testing/fulltests/default/T015snmpv2cgetnext_simple @@ -0,0 +1,25 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER SNMPv2c getnext of system.sysUpTime + +SKIPIF NETSNMP_DISABLE_SNMPV2C +SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE + +# +# Begin test +# + +# standard V2C configuration: testcomunnity +. ./Sv2cconfig + +STARTAGENT + +CAPTURE "snmpgetnext -On $SNMP_FLAGS -c testcommunity -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3" + +STOPAGENT + +CHECK ".1.3.6.1.2.1.1.3.0 = Timeticks:" + +FINISHED diff --git a/testing/fulltests/default/T0160snmpv2cbulkget_simple b/testing/fulltests/default/T0160snmpv2cbulkget_simple new file mode 100755 index 0000000..38ec3b3 --- /dev/null +++ b/testing/fulltests/default/T0160snmpv2cbulkget_simple @@ -0,0 +1,31 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER SNMPv2c bulkget of system components + +SKIPIF NETSNMP_DISABLE_SNMPV2C +SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE + +# +# Begin test +# + +# standard V2 configuration: testcomunnity +. ./Sv2cconfig + +STARTAGENT + +CAPTURE "snmpbulkget $SNMP_FLAGS -v2c -On -Cn1 -Cr2 -c testcommunity $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4 .1.3.6.1.2.1.1" + +STOPAGENT + +CHECKORDIE ".1.3.6.1.2.1.1.4.0 = STRING:" +CHECKORDIE ".1.3.6.1.2.1.1.1.0 = STRING:" +CHECKORDIE ".1.3.6.1.2.1.1.2.0 = OID:" + +CHECKCOUNT 0 ".1.3.6.1.2.1.1.3.0" + +CHECKCOUNT 0 ".1.3.6.1.2.1.1.5.0" + +FINISHED diff --git a/testing/fulltests/default/T016snmpv2cgetfail_simple b/testing/fulltests/default/T016snmpv2cgetfail_simple new file mode 100644 index 0000000..1cd0e94 --- /dev/null +++ b/testing/fulltests/default/T016snmpv2cgetfail_simple @@ -0,0 +1,30 @@ +#!/bin/sh + +# +# test snmpv2c get support by reading a variable +# + +. ../support/simple_eval_tools.sh + +HEADER for failure of SNMPv2c get with wrong community + +SKIPIF NETSNMP_DISABLE_SNMPV2C +SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE +SKIPIFNOT USING_MIBII_VACM_CONF_MODULE + +# +# Begin test +# + +# standard V2C configuration: testcomunnity +. ./Sv2cconfig + +STARTAGENT + +CAPTURE "snmpget -On $SNMP_FLAGS -c notavalidcommunity -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" + +STOPAGENT + +CHECK "Timeout" + +FINISHED diff --git a/testing/fulltests/default/T017snmpv2ctov1getfail_simple b/testing/fulltests/default/T017snmpv2ctov1getfail_simple new file mode 100644 index 0000000..4c812c0 --- /dev/null +++ b/testing/fulltests/default/T017snmpv2ctov1getfail_simple @@ -0,0 +1,30 @@ +#!/bin/sh + +# +# test snmpv2c get support by reading a variable +# + +. ../support/simple_eval_tools.sh + +HEADER for failure of SNMPv2c get against SNMPv1 agent + +SKIPIF NETSNMP_DISABLE_SNMPV2C +SKIPIF NETSNMP_DISABLE_SNMPV1 +SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE + +# +# Begin test +# + +# standard V2C configuration: testcomunnity +. ./Sv1config + +STARTAGENT + +CAPTURE "snmpget -On $SNMP_FLAGS -c notavalidcommunity -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" + +STOPAGENT + +CHECK "Timeout" + +FINISHED diff --git a/testing/fulltests/default/T018snmpv1tov2cgetfail_simple b/testing/fulltests/default/T018snmpv1tov2cgetfail_simple new file mode 100644 index 0000000..d9b8b6a --- /dev/null +++ b/testing/fulltests/default/T018snmpv1tov2cgetfail_simple @@ -0,0 +1,26 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER for failure of SNMPv1 get against SNMPv2c agent + +SKIPIF NETSNMP_DISABLE_SNMPV2C +SKIPIF NETSNMP_DISABLE_SNMPV1 +SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE + +# +# Begin test +# + +# standard V2C configuration: testcomunnity +. ./Sv2cconfig + +STARTAGENT + +CAPTURE "snmpget -On $SNMP_FLAGS -c notavalidcommunity -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" + +STOPAGENT + +CHECK "Timeout" + +FINISHED diff --git a/testing/fulltests/default/T019snmpv2cnosuch_simple b/testing/fulltests/default/T019snmpv2cnosuch_simple new file mode 100644 index 0000000..78a0bb1 --- /dev/null +++ b/testing/fulltests/default/T019snmpv2cnosuch_simple @@ -0,0 +1,25 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER SNMPv2c get of system.sysUpTime.1 + +SKIPIF NETSNMP_DISABLE_SNMPV2C +SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE + +# +# Begin test +# + +# standard V2C configuration: testcomunnity +. ./Sv2cconfig + +STARTAGENT + +CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.1" + +STOPAGENT + +CHECK ".1.3.6.1.2.1.1.3.1 = No Such Instance" + +FINISHED diff --git a/testing/fulltests/default/T020snmpv3get_simple b/testing/fulltests/default/T020snmpv3get_simple new file mode 100644 index 0000000..20b59e4 --- /dev/null +++ b/testing/fulltests/default/T020snmpv3get_simple @@ -0,0 +1,24 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER SNMPv3 get using noAuthNoPriv of .1.3.6.1.2.1.1.3.0 + +SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE + +# +# Begin test +# + +# configure the agent to accept user initial with noAuthNoPriv +. ./Sv3config + +STARTAGENT + +CAPTURE "snmpget -On $SNMP_FLAGS $NOAUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" + +STOPAGENT + +CHECK ".1.3.6.1.2.1.1.3.0 = Timeticks:" + +FINISHED diff --git a/testing/fulltests/default/T021snmpv3getnext_simple b/testing/fulltests/default/T021snmpv3getnext_simple new file mode 100755 index 0000000..54c82d3 --- /dev/null +++ b/testing/fulltests/default/T021snmpv3getnext_simple @@ -0,0 +1,24 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER SNMPv3 getnext using initial of .1.3.6.1.2.1.1.3 + +SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE + +# +# Begin test +# + +# configure the agent to accept user initial with noAuthNoPriv +. ./Sv3config + +STARTAGENT + +CAPTURE "snmpgetnext -On $SNMP_FLAGS $NOAUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3" + +STOPAGENT + +CHECK ".1.3.6.1.2.1.1.3.0 = Timeticks:" + +FINISHED diff --git a/testing/fulltests/default/T0220snmpv3bulkget_simple b/testing/fulltests/default/T0220snmpv3bulkget_simple new file mode 100755 index 0000000..7eddccf --- /dev/null +++ b/testing/fulltests/default/T0220snmpv3bulkget_simple @@ -0,0 +1,30 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER SNMPv3 bulkget of system + +SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE + +# +# Begin test +# + +# standard V3 configuration: +. ./Sv3config + +STARTAGENT + +CAPTURE "snmpbulkget $SNMP_FLAGS -On -Cn1 -Cr2 $NOAUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4 .1.3.6.1.2.1.1" + +STOPAGENT + +CHECKORDIE ".1.3.6.1.2.1.1.4.0 = STRING:" +CHECKORDIE ".1.3.6.1.2.1.1.1.0 = STRING:" +CHECKORDIE ".1.3.6.1.2.1.1.2.0 = OID:" + +CHECKCOUNT 0 ".1.3.6.1.2.1.1.3.0" + +CHECKCOUNT 0 ".1.3.6.1.2.1.1.5.0" + +FINISHED diff --git a/testing/fulltests/default/T022snmpv3getMD5_simple b/testing/fulltests/default/T022snmpv3getMD5_simple new file mode 100755 index 0000000..eed4292 --- /dev/null +++ b/testing/fulltests/default/T022snmpv3getMD5_simple @@ -0,0 +1,25 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER SNMPv3 get using MD5/noPriv of .1.3.6.1.2.1.1.3.0 + +SKIPIF NETSNMP_DISABLE_MD5 + +# +# Begin test +# + +# standard V3 configuration for initial user +DEFAUTHTYPE="MD5" +. ./Sv3config + +STARTAGENT + +CAPTURE "snmpget -On $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" + +STOPAGENT + +CHECK ".1.3.6.1.2.1.1.3.0 = Timeticks:" + +FINISHED diff --git a/testing/fulltests/default/T023snmpv3getMD5AES_simple b/testing/fulltests/default/T023snmpv3getMD5AES_simple new file mode 100644 index 0000000..985b2a4 --- /dev/null +++ b/testing/fulltests/default/T023snmpv3getMD5AES_simple @@ -0,0 +1,29 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER SNMPv3 get using MD5/AES of .1.3.6.1.2.1.1.3.0 + +SKIPIFNOT NETSNMP_CAN_DO_CRYPTO +SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV +SKIPIFNOT HAVE_AES_CFB128_ENCRYPT +SKIPIF NETSNMP_DISABLE_MD5 + +# +# Begin test +# + +# standard V3 configuration for initial user +DEFAUTHTYPE=MD5 +DEFPRIVTYPE=AES +. ./Sv3config + +STARTAGENT + +CAPTURE "snmpget -On $SNMP_FLAGS $PRIVTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" + +STOPAGENT + +CHECK ".1.3.6.1.2.1.1.3.0 = Timeticks:" + +FINISHED diff --git a/testing/fulltests/default/T023snmpv3getMD5DES_simple b/testing/fulltests/default/T023snmpv3getMD5DES_simple new file mode 100755 index 0000000..000478a --- /dev/null +++ b/testing/fulltests/default/T023snmpv3getMD5DES_simple @@ -0,0 +1,28 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER SNMPv3 get using MD5/DES of .1.3.6.1.2.1.1.3.0 + +SKIPIFNOT NETSNMP_CAN_DO_CRYPTO +SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV +SKIPIF NETSNMP_DISABLE_MD5 + +# +# Begin test +# + +# standard V3 configuration for initial user +DEFAUTHTYPE=MD5 +DEFPRIVTYPE=DES +. ./Sv3config + +STARTAGENT + +CAPTURE "snmpget -On $SNMP_FLAGS $PRIVTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" + +STOPAGENT + +CHECK ".1.3.6.1.2.1.1.3.0 = Timeticks:" + +FINISHED diff --git a/testing/fulltests/default/T024snmpv3getSHA1_simple b/testing/fulltests/default/T024snmpv3getSHA1_simple new file mode 100755 index 0000000..80b7f4f --- /dev/null +++ b/testing/fulltests/default/T024snmpv3getSHA1_simple @@ -0,0 +1,25 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER SNMPv3 get using SHA/noPriv of .1.3.6.1.2.1.1.3.0 + +SKIPIFNOT NETSNMP_CAN_DO_CRYPTO + +# +# Begin test +# + +# standard V3 configuration for templateSHA user +DEFAUTHTYPE="SHA" +. ./Sv3config + +STARTAGENT + +CAPTURE "snmpget -On $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" + +STOPAGENT + +CHECK ".1.3.6.1.2.1.1.3.0 = Timeticks:" + +FINISHED diff --git a/testing/fulltests/default/T025snmpv3getSHADES_simple b/testing/fulltests/default/T025snmpv3getSHADES_simple new file mode 100755 index 0000000..d01a4ef --- /dev/null +++ b/testing/fulltests/default/T025snmpv3getSHADES_simple @@ -0,0 +1,29 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER SNMPv3 get using SHA/DES of .1.3.6.1.2.1.1.3.0 + +SKIPIFNOT NETSNMP_CAN_DO_CRYPTO +SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV +SKIPIF NETSNMP_DISABLE_DES + +# +# Begin test +# + +# standard V3 configuration for templateSHA user +DEFAUTHTYPE="SHA" +DEFPRIVTYPE="DES" +. ./Sv3config + +AGENT_FLAGS="$AGENT_FLAGS -I-winExtDLL" +STARTAGENT + +CAPTURE "snmpget -On $SNMP_FLAGS $PRIVTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" + +STOPAGENT + +CHECK ".1.3.6.1.2.1.1.3.0 = Timeticks:" + +FINISHED diff --git a/testing/fulltests/default/T026snmpv3getSHAAES_simple b/testing/fulltests/default/T026snmpv3getSHAAES_simple new file mode 100644 index 0000000..561cdab --- /dev/null +++ b/testing/fulltests/default/T026snmpv3getSHAAES_simple @@ -0,0 +1,29 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER SNMPv3 get using SHA/AES of .1.3.6.1.2.1.1.3.0 + +SKIPIFNOT NETSNMP_CAN_DO_CRYPTO +SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV +SKIPIFNOT HAVE_AES_CFB128_ENCRYPT + +# +# Begin test +# + +# standard V3 configuration for templateSHA user +DEFPRIVTYPE="AES" +DEFAUTHTYPE="SHA" +. ./Sv3config + +AGENT_FLAGS="$AGENT_FLAGS -I-winExtDLL" +STARTAGENT + +CAPTURE "snmpget -On $SNMP_FLAGS $PRIVTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" + +STOPAGENT + +CHECK ".1.3.6.1.2.1.1.3.0 = Timeticks:" + +FINISHED diff --git a/testing/fulltests/default/T027snmpv3Defaults_simple b/testing/fulltests/default/T027snmpv3Defaults_simple new file mode 100644 index 0000000..ea42f47 --- /dev/null +++ b/testing/fulltests/default/T027snmpv3Defaults_simple @@ -0,0 +1,38 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER SNMPv3 get using default config of .1.3.6.1.2.1.1.3.0 + +SKIPIFNOT NETSNMP_CAN_DO_CRYPTO +SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV +SKIPIFNOT HAVE_AES_CFB128_ENCRYPT + +# +# Begin test +# + +# standard V3 configuration for templateSHA user +DEFPRIVTYPE="AES" +DEFAUTHTYPE="SHA" +. ./Sv3config + +STARTAGENT + +CONFIGAPP defPrivType AES +CONFIGAPP defAuthType SHA +CONFIGAPP defContext \"\" +CONFIGAPP defAuthPassPhrase initial_test_pass_auth +CONFIGAPP defPrivPassPhrase initial_test_pass_auth +CONFIGAPP defSecurityLevel authPriv +CONFIGAPP defSecurityName initial + +# make sure that the above configuration tokens properly set things up so that +# no flags are needed +CAPTURE "snmpget -On $SNMP_FLAGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" + +STOPAGENT + +CHECK ".1.3.6.1.2.1.1.3.0 = Timeticks:" + +FINISHED diff --git a/testing/fulltests/default/T028snmpv3getfail_simple b/testing/fulltests/default/T028snmpv3getfail_simple new file mode 100755 index 0000000..ada8a13 --- /dev/null +++ b/testing/fulltests/default/T028snmpv3getfail_simple @@ -0,0 +1,22 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER for failure of SNMPv3 get using unknown user. + +# +# Begin test +# + +# standard V3 configuration for initial user +. ./Sv3config + +STARTAGENT + +CAPTURE "snmpget -On $SNMP_FLAGS -v 3 -l nanp -u unknownuser $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" + +STOPAGENT + +CHECK "Unknown user name" + +FINISHED diff --git a/testing/fulltests/default/T030snmpv3usercreation_simple b/testing/fulltests/default/T030snmpv3usercreation_simple new file mode 100644 index 0000000..28eaae8 --- /dev/null +++ b/testing/fulltests/default/T030snmpv3usercreation_simple @@ -0,0 +1,119 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER SNMPv3 agent USM user management with snmpusm + +SKIPIF NETSNMP_DISABLE_SET_SUPPORT +SKIPIF NETSNMP_NO_WRITE_SUPPORT +SKIPIFNOT USING_SNMPV3_USMUSER_MODULE +SKIPIFNOT NETSNMP_CAN_DO_CRYPTO +SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV + +# +# Begin test +# + +# standard SNMPv3 USM agent configuration +DEFSECURITYLEVEL=authPriv +. ./Sv3usmconfigagent + +# test user +NEWUSER=newtestuser +NEWAUTHPASS=newauthpass +NEWPRIVPASS=newprivpass +NEWAUTHPRIVPASS=newauthprivpass + +# configure agent +CONFIGAGENT rwuser $NEWUSER + +# Start the agent +STARTAGENT + +## usmUserTable management + +## 1) create, clone, test, delete + +# create new (vanilla) user +CAPTURE "snmpusm $SNMP_FLAGS $TESTPRIVARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT create $NEWUSER" +CHECKORDIE "User successfully created" + +# clone +CAPTURE "snmpusm $SNMP_FLAGS $TESTPRIVARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT cloneFrom $NEWUSER $TESTPRIVUSER" +CHECKORDIE "User successfully cloned" + +# test (authPriv) +CAPTURE "snmpget -On $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $TESTAUTHPASS -x $DEFPRIVTYPE -X $TESTPRIVPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" +CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:" + +# delete +CAPTURE "snmpusm $SNMP_FLAGS $TESTPRIVARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT delete $NEWUSER" +CHECKORDIE "User successfully deleted" + +## 2) create w/ clone, passwd (auth), passwd (priv), test (authPriv+authNoPriv) + +# create+clone template user +CAPTURE "snmpusm $SNMP_FLAGS $TESTPRIVARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT create $NEWUSER $TESTPRIVUSER2" +CHECKORDIE "User successfully created" + +# change auth passphrase of new user +CAPTURE "snmpusm $SNMP_FLAGS $TESTPRIVARGS -Ca $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $TESTAUTHPASS2 $NEWAUTHPASS $NEWUSER" +CHECKORDIE "SNMPv3 Key(s) successfully changed" + +# change priv passphrase of new user +CAPTURE "snmpusm $SNMP_FLAGS $TESTPRIVARGS -Cx $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $TESTPRIVPASS2 $NEWPRIVPASS $NEWUSER" +CHECKORDIE "SNMPv3 Key(s) successfully changed" + +# test (authNoPriv) +CAPTURE "snmpget -On $SNMP_FLAGS -v 3 -u $NEWUSER -l anp -a $DEFAUTHTYPE -A $NEWAUTHPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" +CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:" + +# test (authPriv) +CAPTURE "snmpget -On $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $NEWAUTHPASS -x $DEFPRIVTYPE -X $NEWPRIVPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" +CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:" + +## 3) passwd (priv), passwd (auth+priv), test + +# change priv passphrase (to auth passphrase) by the user himself +CAPTURE "snmpusm $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $NEWAUTHPASS -x $DEFPRIVTYPE -X $NEWPRIVPASS -Cx $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $NEWPRIVPASS $NEWAUTHPASS" +CHECKORDIE "SNMPv3 Key(s) successfully changed" + +# change both passphrases at once +CAPTURE "snmpusm $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $NEWAUTHPASS -x $DEFPRIVTYPE -X $NEWAUTHPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $NEWAUTHPASS $NEWAUTHPRIVPASS" +CHECKORDIE "SNMPv3 Key(s) successfully changed" + +# test (authPriv) +CAPTURE "snmpget -On $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $NEWAUTHPRIVPASS -x $DEFPRIVTYPE -X $NEWAUTHPRIVPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" +CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:" + +## 5) persistency I: reconfigure (SIGHUP), re-test + +if ISDEFINED HAVE_SIGHUP; then + +HUPAGENT +DELAY + +# test (authPriv) +CAPTURE "snmpget -On $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $NEWAUTHPRIVPASS -x $DEFPRIVTYPE -X $NEWAUTHPRIVPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" +CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:" + +## 5) persistency II: stop, start, re-test + +STOPAGENT +DELAY +# make sure it picks up persistent config and uses a new logfile +SNMPCONFPATH="${SNMP_TMPDIR}${SNMP_ENV_SEPARATOR}${SNMP_TMP_PERSISTENTDIR}" +export SNMPCONFPATH +SNMP_CONFIG_FILE="does-not-exist" +SNMP_SNMPD_LOG_FILE=${SNMP_TMPDIR}/snmpd2.log +STARTAGENT + +# test (authPriv) +CAPTURE "snmpget -On $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $NEWAUTHPRIVPASS -x $DEFPRIVTYPE -X $NEWAUTHPRIVPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" +CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:" + +fi + +## stop agent and finish +STOPAGENT +FINISHED diff --git a/testing/fulltests/default/T035snmpv3trapdusermgmt_simple b/testing/fulltests/default/T035snmpv3trapdusermgmt_simple new file mode 100644 index 0000000..be7aab6 --- /dev/null +++ b/testing/fulltests/default/T035snmpv3trapdusermgmt_simple @@ -0,0 +1,126 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER SNMPv3 snmptrapd USM user management with snmpusm + +SKIPIFNOT USING_AGENTX_MASTER_MODULE +SKIPIFNOT USING_AGENTX_SUBAGENT_MODULE +SKIPIFNOT USING_SNMPV3_USMUSER_MODULE +SKIPIF NETSNMP_SNMPTRAPD_DISABLE_AGENTX +SKIPIF NETSNMP_DISABLE_SET_SUPPORT +SKIPIF NETSNMP_NO_WRITE_SUPPORT +SKIPIFNOT NETSNMP_CAN_DO_CRYPTO +SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV + +# +# Begin test +# + +# configure AgentX socket +if [ "x$SNMP_TRANSPORT_SPEC" = "xunix" ]; then + AGENT_FLAGS="$AGENT_FLAGS -x $SNMP_TMPDIR/agentx_socket" + TRAPD_FLAGS="$TRAPD_FLAGS -x $SNMP_TMPDIR/agentx_socket" +else + AGENT_FLAGS="$AGENT_FLAGS -x tcp:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT}" + TRAPD_FLAGS="$TRAPD_FLAGS -x tcp:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT}" +fi + +# standard SNMPv3 USM agent configuration +DEFSECURITYLEVEL=authPriv +. ./Sv3usmconfigagent + +# save agent access +AGENT_TESTAUTHARGS=$TESTAUTHARGS +AGENT_TESTPRIVARGS=$TESTPRIVARGS + +# configure agent as AgentX master +CONFIGAGENT master agentx + +# Start the master agent +STARTAGENT + +# standard SNMPv3 USM snmptrapd configuration +. ./Sv3usmconfigtrapd + +# configure snmptrapd +NEWAUTHKEY=0x7458ead7a0b5a753e21bfcb87f6c9803ebef68cf +NEWPRIVKEY=0x98e2696d1cf34d904dfcae76bf01c473 +NEWUSER=newtestuser +NEWAUTHPASS=newauthpass +NEWPRIVPASS=newprivpass +NEWUSER2=newtestuser_vanilla +CONFIGTRAPD authuser log $NEWUSER auth + +# start snmptrapd +STARTTRAPD + +# delay to let it connect and register all MIBs +DELAY + +## verify snmptrapd usmUserTable management + +SNMPUSM_TRAPD_CONTEXT_ARGS="-n snmptrapd -CE $TRAPD_ENGINEID" + +## 1) create, clone, passwd auth, passwd priv, test + +# create vanilla user +CAPTURE "snmpusm $SNMP_FLAGS $AGENT_TESTAUTHARGS $SNMPUSM_TRAPD_CONTEXT_ARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT create $NEWUSER2" +CHECKORDIE "User successfully created" + +# clone template user +CAPTURE "snmpusm $SNMP_FLAGS $AGENT_TESTAUTHARGS $SNMPUSM_TRAPD_CONTEXT_ARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT create $NEWUSER $TESTPRIVUSER" +CHECKORDIE "User successfully created" + +# change auth passphrase of new user +CAPTURE "snmpusm $SNMP_FLAGS $AGENT_TESTAUTHARGS $SNMPUSM_TRAPD_CONTEXT_ARGS -Ca $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $TESTAUTHPASS $NEWAUTHPASS $NEWUSER" +CHECKORDIE "SNMPv3 Key(s) successfully changed" + +# change priv passphrase of new user +CAPTURE "snmpusm $SNMP_FLAGS $AGENT_TESTPRIVARGS $SNMPUSM_TRAPD_CONTEXT_ARGS -Cx $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $TESTPRIVPASS $NEWPRIVPASS $NEWUSER" +CHECKORDIE "SNMPv3 Key(s) successfully changed" + +# test (anp) +CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -v 3 -u $NEWUSER -l anp -a $DEFAUTHTYPE -A $NEWAUTHPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s received_inform_anp" +DELAY +CHECKTRAPDORDIE "received_inform_anp" + +# test (ap) +CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $NEWAUTHPASS -x $DEFPRIVTYPE -X $NEWPRIVPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s received_inform_ap" +DELAY +CHECKTRAPDORDIE "received_inform_ap" + +## 2) change localized auth key, test, change localized priv key, test + +# change localized auth key +CAPTURE "snmpusm $SNMP_FLAGS $AGENT_TESTAUTHARGS $SNMPUSM_TRAPD_CONTEXT_ARGS -Ca -Ck $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $NEWAUTHPASS $NEWAUTHKEY $NEWUSER" +CHECKORDIE "SNMPv3 Key(s) successfully changed" + +# test (anp) +CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -v 3 -u $NEWUSER -l anp -a $DEFAUTHTYPE -3k $NEWAUTHKEY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s received_inform_anp2" +DELAY +CHECKTRAPDORDIE "received_inform_anp2" + +# change localized priv key +CAPTURE "snmpusm $SNMP_FLAGS $AGENT_TESTPRIVARGS $SNMPUSM_TRAPD_CONTEXT_ARGS -Cx -Ck $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $NEWPRIVPASS $NEWPRIVKEY $NEWUSER" +CHECKORDIE "SNMPv3 Key(s) successfully changed" + +# test (ap) +CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -3k $NEWAUTHKEY -x $DEFPRIVTYPE -3K $NEWPRIVKEY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s received_inform_ap2" +DELAY +CHECKTRAPDORDIE "received_inform_ap2" + +## 3) persistency I: reconfigure (SIGHUP), re-test + +# reconfigure snmptrapd +HUPTRAPD + +# test (ap) +CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -3k $NEWAUTHKEY -x $DEFPRIVTYPE -3K $NEWPRIVKEY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s received_inform_ap3" +DELAY +CHECKTRAPDORDIE "received_inform_ap3" + +## stop daemons and finish +STOPTRAPD +STOPAGENT +FINISHED diff --git a/testing/fulltests/default/T049snmpv3inform_simple b/testing/fulltests/default/T049snmpv3inform_simple new file mode 100644 index 0000000..99cb5eb --- /dev/null +++ b/testing/fulltests/default/T049snmpv3inform_simple @@ -0,0 +1,27 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +SKIPIFNOT NETSNMP_SECMOD_USM + +DEFSECURITYLEVEL=noAuthNoPriv + +HEADER "SNMPv3 informs (noAuthNoPriv) received and sent by tools" + +# +# Begin test +# + +CONFIGTRAPD createUser testuser +CONFIGTRAPD authuser log testuser $DEFSECURITYLEVEL +CONFIGTRAPD agentxsocket /dev/null + +STARTTRAPD + +CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -v 3 -u testuser -l nanp $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s received_inform_$DEFSECURITYLEVEL" + +STOPTRAPD + +CHECKTRAPD "received_inform_$DEFSECURITYLEVEL" + +FINISHED diff --git a/testing/fulltests/default/T049snmpv3informauth_simple b/testing/fulltests/default/T049snmpv3informauth_simple new file mode 100644 index 0000000..0f18577 --- /dev/null +++ b/testing/fulltests/default/T049snmpv3informauth_simple @@ -0,0 +1,27 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +SKIPIFNOT NETSNMP_SECMOD_USM + +DEFSECURITYLEVEL=authNoPriv + +HEADER "SNMPv3 informs (authNoPriv) received and sent by tools" + +# +# Begin test +# + +. ./Sv3usmconfigtrapd +CONFIGTRAPD authuser log $TESTAUTHUSER $DEFSECURITYLEVEL +CONFIGTRAPD agentxsocket /dev/null + +STARTTRAPD + +CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d $TESTAUTHARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s received_inform_$DEFSECURITYLEVEL" + +STOPTRAPD + +CHECKTRAPD "received_inform_$DEFSECURITYLEVEL" + +FINISHED diff --git a/testing/fulltests/default/T049snmpv3informpriv_simple b/testing/fulltests/default/T049snmpv3informpriv_simple new file mode 100644 index 0000000..e8f47de --- /dev/null +++ b/testing/fulltests/default/T049snmpv3informpriv_simple @@ -0,0 +1,28 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +DEFSECURITYLEVEL=authPriv + +HEADER "SNMPv3 informs (authPriv) received and sent by tools" + +SKIPIFNOT NETSNMP_CAN_DO_CRYPTO +SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV + +# +# Begin test +# + +. ./Sv3usmconfigtrapd +CONFIGTRAPD authuser log $TESTPRIVUSER $DEFSECURITYLEVEL +CONFIGTRAPD agentxsocket /dev/null + +STARTTRAPD + +CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d $TESTPRIVARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s received_inform_$DEFSECURITYLEVEL" + +STOPTRAPD + +CHECKTRAPD "received_inform_$DEFSECURITYLEVEL" + +FINISHED diff --git a/testing/fulltests/default/T050snmpv3trap_simple b/testing/fulltests/default/T050snmpv3trap_simple new file mode 100644 index 0000000..2b7a4a8 --- /dev/null +++ b/testing/fulltests/default/T050snmpv3trap_simple @@ -0,0 +1,36 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER SNMPv3 traps received and sent by tools + +#SKIPIFNOT NETSNMP_USE_OPENSSL +SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV + +# +# Begin test +# + +CREATEUSERENGINEID=0x80001f88802b3d0e06bbdf4321 +. ./Sv3usmconfigtrapd +CONFIGTRAPD authuser log $TESTNOAUTHUSER noAuthNoPriv +CONFIGTRAPD authuser log $TESTAUTHUSER authNoPriv +CONFIGTRAPD authuser log $TESTPRIVUSER authPriv +CONFIGTRAPD agentxsocket /dev/null + +STARTTRAPD + +CAPTURE "snmptrap -d -e $CREATEUSERENGINEID $TESTNOAUTHARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s received_trap_nanp" +DELAY +CAPTURE "snmptrap -d -e $CREATEUSERENGINEID $TESTAUTHARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s received_trap_anp" +DELAY +CAPTURE "snmptrap -d -e $CREATEUSERENGINEID $TESTPRIVARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s received_trap_ap" +DELAY + +STOPTRAPD + +CHECKTRAPD "received_trap_nanp" +CHECKTRAPD "received_trap_anp" +CHECKTRAPD "received_trap_ap" + +FINISHED diff --git a/testing/fulltests/default/T051snmpv2ctrap_simple b/testing/fulltests/default/T051snmpv2ctrap_simple new file mode 100644 index 0000000..8e1be6b --- /dev/null +++ b/testing/fulltests/default/T051snmpv2ctrap_simple @@ -0,0 +1,27 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER SNMPv2c traps received and sent by tools + +SKIPIF NETSNMP_DISABLE_SNMPV2C +SKIPIFNOT USING_MIBII_VACM_CONF_MODULE + +# +# Begin test +# + +CONFIGTRAPD authcommunity log testcommunity +CONFIGTRAPD agentxsocket /dev/null + +TRAPD_FLAGS="$TRAPD_FLAGS -On" + +STARTTRAPD + +CAPTURE "snmptrap -d -v 2c -c testcommunity $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s blah" + +STOPTRAPD + +CHECKTRAPD ".1.3.6.1.6.3.1.1.4.1.0 = OID: .1.3.6.1.6.3.1.1.5.1" + +FINISHED diff --git a/testing/fulltests/default/T052snmpv2cinform_simple b/testing/fulltests/default/T052snmpv2cinform_simple new file mode 100644 index 0000000..4208df8 --- /dev/null +++ b/testing/fulltests/default/T052snmpv2cinform_simple @@ -0,0 +1,25 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER SNMPv2c informs received and sent by tools + +SKIPIF NETSNMP_DISABLE_SNMPV2C +SKIPIFNOT USING_MIBII_VACM_CONF_MODULE + +# +# Begin test +# + +CONFIGTRAPD authcommunity log testcommunity +CONFIGTRAPD agentxsocket /dev/null + +STARTTRAPD + +CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -v 2c -c testcommunity $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s blah" + +STOPTRAPD + +CHECKTRAPD "Received" + +FINISHED diff --git a/testing/fulltests/default/T053agentv1trap_simple b/testing/fulltests/default/T053agentv1trap_simple new file mode 100644 index 0000000..44b219e --- /dev/null +++ b/testing/fulltests/default/T053agentv1trap_simple @@ -0,0 +1,34 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER snmpv1 traps are sent by snmpd API + +SKIPIFNOT USING_EXAMPLES_EXAMPLE_MODULE +SKIPIFNOT HAVE_SIGHUP + +# +# Begin test +# + +# standard V1 configuration: testcomunnity +. ./Sv3config +CONFIGAGENT trapsink ${SNMP_TRANSPORT_SPEC}:${SNMP_TEST_DEST}${SNMP_SNMPTRAPD_PORT} public + +CONFIGTRAPD authcommunity log public +CONFIGTRAPD agentxsocket /dev/null + +STARTTRAPD + +AGENT_FLAGS="$AGENT_FLAGS -Dexample,header_generic,add_trap" +STARTAGENT + +CAPTURE "snmpset -On $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.2021.254.7.0 i 1" + +STOPAGENT + +STOPTRAPD + +CHECKTRAPD "Enterprise Specific Trap (99)" + +FINISHED diff --git a/testing/fulltests/default/T054agentv2ctrap_simple b/testing/fulltests/default/T054agentv2ctrap_simple new file mode 100644 index 0000000..f5b6904 --- /dev/null +++ b/testing/fulltests/default/T054agentv2ctrap_simple @@ -0,0 +1,33 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER snmpv2c traps are sent by snmpd API + +SKIPIFNOT USING_EXAMPLES_EXAMPLE_MODULE + +# +# Begin test +# + +# standard V1 configuration: testcommunity +. ./Sv3config +CONFIGAGENT trap2sink ${SNMP_TRANSPORT_SPEC}:${SNMP_TEST_DEST}${SNMP_SNMPTRAPD_PORT} public +CONFIGTRAPD authcommunity log public +CONFIGTRAPD agentxsocket /dev/null + +STARTTRAPD + +AGENT_FLAGS="$AGENT_FLAGS" +STARTAGENT + +#DELAY +CAPTURE "snmpset -On -t 3 -r 0 $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.2021.254.8.0 i 1" + +STOPAGENT + +STOPTRAPD + +CHECKTRAPD "life the universe and everything" + +FINISHED diff --git a/testing/fulltests/default/T055agentv1mintrap_simple b/testing/fulltests/default/T055agentv1mintrap_simple new file mode 100644 index 0000000..4a1c0e1 --- /dev/null +++ b/testing/fulltests/default/T055agentv1mintrap_simple @@ -0,0 +1,33 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER snmpv1 traps are sent by snmpd without notification mib support + +SKIPIFNOT USING_EXAMPLES_EXAMPLE_MODULE + +# +# Begin test +# + +# standard V1 configuration: testcommunity +. ./Sv3config +CONFIGAGENT trapsink ${SNMP_TRANSPORT_SPEC}:${SNMP_TEST_DEST}${SNMP_SNMPTRAPD_PORT} public +CONFIGTRAPD authcommunity log public +CONFIGTRAPD agentxsocket /dev/null + +STARTTRAPD + +# initialize only the example mib, and not the notification mib stuff +AGENT_FLAGS="$AGENT_FLAGS -Dexample,header_generic,add_trap,mib_init,callback -I example,usmUser,usmConf,vacm_vars" +STARTAGENT + +CAPTURE "snmpset -On $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.2021.254.7.0 i 1" + +STOPAGENT + +STOPTRAPD + +CHECKTRAPD "Enterprise Specific Trap (99)" + +FINISHED diff --git a/testing/fulltests/default/T056agentv2cmintrap_simple b/testing/fulltests/default/T056agentv2cmintrap_simple new file mode 100644 index 0000000..73c7a23 --- /dev/null +++ b/testing/fulltests/default/T056agentv2cmintrap_simple @@ -0,0 +1,34 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER snmpv2c traps are sent by snmpd without notification mib support + +SKIPIFNOT USING_EXAMPLES_EXAMPLE_MODULE + +# +# Begin test +# + +# standard V1 configuration: testcommunity +. ./Sv3config +CONFIGAGENT trap2sink ${SNMP_TRANSPORT_SPEC}:${SNMP_TEST_DEST}${SNMP_SNMPTRAPD_PORT} public +CONFIGTRAPD authcommunity log public +CONFIGTRAPD agentxsocket /dev/null + +STARTTRAPD + +# initialize only the example mib, and not the notification mib stuff +AGENT_FLAGS="$AGENT_FLAGS -Dexample,header_generic,add_trap,mib_init,callback -I example,usmUser,usmConf,vacm_vars" +STARTAGENT + +#DELAY +CAPTURE "snmpset -On -t 3 -r 0 $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.2021.254.8.0 i 1" + +STOPAGENT + +STOPTRAPD + +CHECKTRAPD "life the universe and everything" + +FINISHED diff --git a/testing/fulltests/default/T057trapdauthtest2_simple b/testing/fulltests/default/T057trapdauthtest2_simple new file mode 100644 index 0000000..6a43989 --- /dev/null +++ b/testing/fulltests/default/T057trapdauthtest2_simple @@ -0,0 +1,25 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +SKIPIFNOT NETSNMP_SECMOD_USM + +HEADER snmptrapd discards of unauthorized notification types + +# +# Begin test +# + +CONFIGTRAPD createUser testuser +CONFIGTRAPD authuser log testuser noAuthNoPriv .1.3.6.1.6.3.1.1.5.2 +CONFIGTRAPD agentxsocket /dev/null + +STARTTRAPD + +CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -v 3 -u testuser -l nanp $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 system.sysContact.0 s blah" + +STOPTRAPD + +CHECKTRAPDCOUNT 0 "coldStart" + +FINISHED diff --git a/testing/fulltests/default/T057trapdauthtest3_simple b/testing/fulltests/default/T057trapdauthtest3_simple new file mode 100644 index 0000000..078ef38 --- /dev/null +++ b/testing/fulltests/default/T057trapdauthtest3_simple @@ -0,0 +1,25 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +SKIPIFNOT NETSNMP_SECMOD_USM + +HEADER snmptrapd discards of incorrect view types + +# +# Begin test +# + +CONFIGTRAPD createUser testuser +CONFIGTRAPD authuser execute testuser noAuthNoPriv +CONFIGTRAPD agentxsocket /dev/null + +STARTTRAPD + +CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -v 3 -u testuser -l nanp $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 system.sysContact.0 s blah" + +STOPTRAPD + +CHECKTRAPDCOUNT 0 "coldStart" + +FINISHED diff --git a/testing/fulltests/default/T057trapdauthtest_simple b/testing/fulltests/default/T057trapdauthtest_simple new file mode 100644 index 0000000..4e2fc10 --- /dev/null +++ b/testing/fulltests/default/T057trapdauthtest_simple @@ -0,0 +1,25 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +SKIPIFNOT NETSNMP_SECMOD_USM + +HEADER snmptrapd authorization failure of non authorized users + +# +# Begin test +# + +CONFIGTRAPD createUser testuser +CONFIGTRAPD authuser log testuser noAuthNoPriv +CONFIGTRAPD agentxsocket /dev/null + +STARTTRAPD + +CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -v 3 -u nottestuser -l nanp $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 system.sysContact.0 s blah" + +STOPTRAPD + +CHECKTRAPDCOUNT 0 "coldStart" + +FINISHED diff --git a/testing/fulltests/default/T058agentauthtrap_simple b/testing/fulltests/default/T058agentauthtrap_simple new file mode 100644 index 0000000..aa63639 --- /dev/null +++ b/testing/fulltests/default/T058agentauthtrap_simple @@ -0,0 +1,36 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER authentication failure traps are sent by snmpd + +SKIPIF NETSNMP_DISABLE_SNMPV1 + +# +# Begin test +# + +# standard V1 configuration: testcommunity +. ./Sv1config +# add in a v1 trap sink +CONFIGAGENT trapsink $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT public +CONFIGAGENT authtrapenable 1 +CONFIGTRAPD authcommunity log public +CONFIGTRAPD agentxsocket /dev/null + +STARTTRAPD + +STARTAGENT + +# give the agent more time to start up. We only want to fire one +# request (retries = 0) to make sure only one trap is sent. +#DELAY +CAPTURE "snmpget -On -r 0 -t 5 $SNMP_FLAGS -v 1 -c wrongcommunity $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" + +STOPAGENT + +STOPTRAPD + +CHECKTRAPD "Authentication Failure Trap" + +FINISHED diff --git a/testing/fulltests/default/T059trapdtraphandle_simple b/testing/fulltests/default/T059trapdtraphandle_simple new file mode 100755 index 0000000..53d5b90 --- /dev/null +++ b/testing/fulltests/default/T059trapdtraphandle_simple @@ -0,0 +1,71 @@ +#!/bin/sh + +# Testing this script is possible by running e.g. the following commands: +# srcdir=/z/software/net-snmp/trunk builddir=/z/software/net-snmp/trunk-mingw +# cd $builddir/testing +# TRAPD_FLAGS="-Dsnmptrapd -Drun:shell" $srcdir/testing/fulltests/support/simple_run $srcdir/testing/fulltests/default/T059trapdtraphandle_simple + +# "inline" trap handler +if [ "x$1" = "xtraphandle" ]; then + cat - >>"$2" + exit 0 +fi + +. ../support/simple_eval_tools.sh + +TRAPHANDLE_LOGFILE=${SNMP_TMPDIR}/traphandle.log + +HEADER snmptrapd traphandle: launching external shell script + +SKIPIF NETSNMP_DISABLE_SNMPV2C +SKIPIFNOT USING_UTILITIES_EXECUTE_MODULE +SKIPIFNOT HAVE_SIGHUP + +# +# Begin test +# + +snmp_version=v2c +TESTCOMMUNITY=testcommunity + +# Make the paths of arguments $0 and $1 absolute. +NETSNMPDIR="`pwd`" +NETSNMPDIR="`dirname ${NETSNMPDIR}`" +NETSNMPDIR="`dirname ${NETSNMPDIR}`" +NETSNMPDIR="`dirname ${NETSNMPDIR}`" +if [ "`echo $1|cut -c1`" = "/" ]; then + traphandle_arg="$1" +else + traphandle_arg="${NETSNMPDIR}/$1" +fi + +CONFIGTRAPD [snmp] persistentDir $SNMP_TMP_PERSISTENTDIR +CONFIGTRAPD [snmp] tempFilePattern /tmp/snmpd-tmp-XXXXXX +CONFIGTRAPD authcommunity execute $TESTCOMMUNITY +CONFIGTRAPD doNotLogTraps true +if [ "x$OSTYPE" = "xmsys" ]; then + CONFIGTRAPD traphandle default $MSYS_SH -c "'" $traphandle_arg traphandle $TRAPHANDLE_LOGFILE "'" +else + CONFIGTRAPD traphandle default $traphandle_arg traphandle $TRAPHANDLE_LOGFILE +fi +CONFIGTRAPD agentxsocket /dev/null + +STARTTRAPD + +## 1) test notification handler + +CAPTURE "snmptrap -d -Ci -t $SNMP_SLEEP -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s handled_inform_$snmp_version" +DELAY +CHECKORDIE "handled_inform_$snmp_version" $TRAPHANDLE_LOGFILE + +## 2) persistency: reconfigure (SIGHUP), re-test + +HUPTRAPD +CAPTURE "snmptrap -d -Ci -t $SNMP_SLEEP -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s handled_inform2_$snmp_version" +DELAY +CHECKORDIE "handled_inform2_$snmp_version" $TRAPHANDLE_LOGFILE + +## stop +STOPTRAPD + +FINISHED 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 diff --git a/testing/fulltests/default/T061agentperl_simple b/testing/fulltests/default/T061agentperl_simple new file mode 100755 index 0000000..c20a3ff --- /dev/null +++ b/testing/fulltests/default/T061agentperl_simple @@ -0,0 +1,77 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER 'snmpd embedded perl support (using NetSNMP::agent)' + +SKIPIF NETSNMP_DISABLE_SNMPV2C +SKIPIFNOT NETSNMP_EMBEDDED_PERL +SKIPIFNOT HAVE_SIGHUP +SKIPIFNOT NETSNMP_SECMOD_USM + +# +# Begin test +# + +snmp_version=v2c +TESTCOMMUNITY=testcommunity +. ./Sv2cconfig + +TESTOID=.1.3.6.1.4.1.8872.9999.9999.1.0 +TESTOID2=.1.3.6.1.4.1.8872.9999.9999.2.0 +EMBPERL_AGENT=${SNMP_TMPDIR}/hello.pl +cat >$EMBPERL_AGENT <<END +#!/usr/bin/env perl +# minimal embedded perl agent + +my \$regat = '.1.3.6.1.4.1.8872.9999.9999'; # netSnmpPlayPen +my \$myoid = \$regat . ".1.0"; # the "hello world" OID +my \$myoid2 = \$regat . ".2.0"; # the "hello again world" OID + +use NetSNMP::OID qw(:all); +use NetSNMP::agent qw(:all); +use NetSNMP::ASN qw(:all); +use SNMP; + +my \$regoid = new NetSNMP::OID(\$regat); +\$agent->register("hello", \$regoid, \&my_snmp_handler); + +sub my_snmp_handler { + my (\$handler, \$registration_info, \$request_info, \$requests) = @_; + for(my \$request = \$requests; \$request; \$request = \$request->next()) { + if (\$request_info->getMode() == MODE_GET) { + if (\$request->getOID() == new NetSNMP::OID(\$myoid)) { + \$request->setValue(ASN_OCTET_STR, "hello world"); + last; + } elsif (\$request->getOID() == new NetSNMP::OID(\$myoid2)) { + \$request->setValue(ASN_OCTET_STR, "hello again world"); + last; + } + } + } +} +END + +echo "use blib qw(${SNMP_UPDIR}/perl);" > ${SNMP_TMPDIR}/snmp_perl.pl +echo 'use NetSNMP::agent;' >> ${SNMP_TMPDIR}/snmp_perl.pl +echo '$agent = new NetSNMP::agent('"'dont_init_agent' => 1, 'dont_init_lib' => 1);" >> ${SNMP_TMPDIR}/snmp_perl.pl + +CONFIGAGENT perlInitFile ${SNMP_TMPDIR}/snmp_perl.pl +CONFIGAGENT "perl do '$EMBPERL_AGENT';" +CONFIGAGENT 'perl print STDERR "registered_perl_agent_ok";' + +STARTAGENT + +## 1) SNMP GET against embedded perl mib module +CAPTURE "snmpget -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT $TESTOID" +CHECK "hello world" + +## 2) persistency: reconfigure (HUP), re-test +HUPAGENT +CAPTURE "snmpget -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT $TESTOID2" +CHECK "hello again world" + +## stop +STOPAGENT + +FINISHED diff --git a/testing/fulltests/default/T065agentextend_simple b/testing/fulltests/default/T065agentextend_simple new file mode 100644 index 0000000..07dcae3 --- /dev/null +++ b/testing/fulltests/default/T065agentextend_simple @@ -0,0 +1,54 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER "extending agent functionality with extend" + +[ "x$OSTYPE" = xmsys -a "x$MSYS_SH" = x ] && SKIP "\$MSYS_SH has not been set" +SKIPIF NETSNMP_DISABLE_SNMPV2C +SKIPIFNOT USING_AGENT_EXTEND_MODULE +SKIPIFNOT USING_UTILITIES_EXECUTE_MODULE + +# make sure snmpget can be executed +SNMPGET="${SNMP_UPDIR}/apps/snmpget" +[ -x "$SNMPGET" ] || SKIP + +snmp_version=v2c +TESTCOMMUNITY=testcommunity +. ./Sv2cconfig + +# +# Begin test +# + +index='"hello"' +if [ "x$OSTYPE" = "xmsys" ]; then + CONFIGAGENT extend hello $MSYS_SH -c "'" echo hello_world "'" +else + CONFIGAGENT extend hello /usr/bin/env echo hello_world +fi + +STARTAGENT + +# NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."hello" = STRING: "hello_world" +CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.8072.1.3.2.3.1.1.$index" +CHECKORDIE "STRING: hello_world" + +#NET-SNMP-EXTEND-MIB::nsExtendOutputFull."hello" = STRING: "hello_world" +CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.8072.1.3.2.3.1.2.$index" +CHECKORDIE "STRING: hello_world" + +#NET-SNMP-EXTEND-MIB::nsExtendOutLine."hello".1 = STRING: "hello_world" +CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.8072.1.3.2.4.1.2.$index.1" +CHECKORDIE "STRING: hello_world" + +#NET-SNMP-EXTEND-MIB::nsExtendOutNumLines."hello" = INTEGER: 1 +CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.8072.1.3.2.3.1.3.$index" +CHECKORDIE "INTEGER: 1" + +#NET-SNMP-EXTEND-MIB::nsExtendResult."hello" = INTEGER: 0 +CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.8072.1.3.2.3.1.4.$index" +CHECKORDIE "INTEGER: 0" + +STOPAGENT +FINISHED diff --git a/testing/fulltests/default/T066pass_simple b/testing/fulltests/default/T066pass_simple new file mode 100644 index 0000000..6396ed1 --- /dev/null +++ b/testing/fulltests/default/T066pass_simple @@ -0,0 +1,53 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER "extending agent functionality with pass" + +SKIPIF NETSNMP_DISABLE_SNMPV2C +SKIPIFNOT USING_UCD_SNMP_PASS_MODULE +SKIPIFNOT USING_UTILITIES_EXECUTE_MODULE + +# Don't run this test on MinGW - local/passtest is a shell script and +# hence passing it to the MSVCRT popen() doesn't work. +[ "x$OSTYPE" = "xmsys" ] && SKIP "MinGW" + +# make sure snmpget and snmpwalk can be executed +SNMPGET="${builddir}/apps/snmpget" +[ -x "$SNMPGET" ] || SKIP +SNMPWALK="${builddir}/apps/snmpwalk" +[ -x "$SNMPWALK" ] || SKIP + +snmp_version=v2c +TESTCOMMUNITY=testcommunity +. ./Sv2cconfig + +# +# Begin test +# +oid=.1.3.6.1.4.1.8072.2.255 # NET-SNMP-PASS-MIB::netSnmpPassExamples +CONFIGAGENT pass $oid ${srcdir}/local/passtest + +ORIG_AGENT_FLAGS="$AGENT_FLAGS" +AGENT_FLAGS="$ORIG_AGENT_FLAGS -Ducd-snmp/pass" +STARTAGENT + +#COMMENT Check a full walk of the sample data +CAPTURE "$SNMPWALK $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT $oid" +CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassString.0 = STRING: Life, the Universe, and Everything" +CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassInteger.1 = INTEGER: 42" +CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassOID.1 = OID: NET-SNMP-PASS-MIB::netSnmpPassOIDValue" +CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassTimeTicks.0 = Timeticks: (363136200) 42 days, 0:42:42.00 " +CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassIpAddress.0 = IpAddress: 127.0.0.1" +CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassCounter.0 = Counter32: 42" +CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassGauge.0 = Gauge32: 42" + +#COMMENT A couple of spot checks of GET requests. +CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT NET-SNMP-PASS-MIB::netSnmpPassInteger.1" +CHECKORDIE "INTEGER: 42" + +CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT NET-SNMP-PASS-MIB::netSnmpPassCounter.0" +CHECKORDIE "Counter32: 42" + +STOPAGENT +FINISHED diff --git a/testing/fulltests/default/T067passpersist_simple b/testing/fulltests/default/T067passpersist_simple new file mode 100644 index 0000000..6051b8f --- /dev/null +++ b/testing/fulltests/default/T067passpersist_simple @@ -0,0 +1,63 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER "extending agent functionality with pass_persist" + +SKIPIF NETSNMP_DISABLE_SNMPV2C +SKIPIFNOT USING_UCD_SNMP_PASS_PERSIST_MODULE + +# Don't run this test on MinGW - local/pass_persisttest is a shell script and +# hence passing it to the MSVCRT popen() doesn't work. +[ "x$OSTYPE" = "xmsys" ] && SKIP "MinGW" + +[ -x /usr/bin/perl ] || SKIP "/usr/bin/perl not found" + +# make sure snmpget and snmpwalk can be executed +SNMPGET="${builddir}/apps/snmpget" +[ -x "$SNMPGET" ] || SKIP +SNMPWALK="${builddir}/apps/snmpwalk" +[ -x "$SNMPWALK" ] || SKIP + +snmp_version=v2c +TESTCOMMUNITY=testcommunity +. ./Sv2cconfig + +# +# Begin test +# +oid=.1.3.6.1.4.1.8072.2.255 # NET-SNMP-PASS-MIB::netSnmpPassExamples +CONFIGAGENT pass_persist $oid ${srcdir}/local/pass_persisttest + +ORIG_AGENT_FLAGS="$AGENT_FLAGS" +AGENT_FLAGS="$ORIG_AGENT_FLAGS -Ducd-snmp/pass_persist" +PASS_PERSIST_PIDFILE="$SNMP_TMPDIR/pass_persist.pid.$$" +export PASS_PERSIST_PIDFILE +STARTAGENT + +#COMMENT Check a full walk of the sample data +CAPTURE "$SNMPWALK $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT $oid" +CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassString.0 = STRING: Life, the Universe, and Everything" +CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassInteger.1 = INTEGER: 42" +CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassOID.1 = OID: NET-SNMP-PASS-MIB::netSnmpPassOIDValue" +CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassTimeTicks.0 = Timeticks: (363136200) 42 days, 0:42:42.00 " +CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassIpAddress.0 = IpAddress: 127.0.0.1" +CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassCounter.0 = Counter32: 1" +CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassGauge.0 = Gauge32: 42" + +#COMMENT A couple of spot checks of GET requests. +CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT NET-SNMP-PASS-MIB::netSnmpPassInteger.1" +CHECKORDIE "INTEGER: 42" + +#COMMENT netSnmpPassCounter should increment, since this is pass_persist +CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT NET-SNMP-PASS-MIB::netSnmpPassCounter.0" +CHECKORDIE "Counter32: 2" + +#COMMENT now kill the pass_persist script, and check that it recovers. +STOPPROG $PASS_PERSIST_PIDFILE +#COMMENT netSnmpPassCounter should have reverted to 1, as this is a new instance. +CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT NET-SNMP-PASS-MIB::netSnmpPassCounter.0" +CHECKORDIE "Counter32: 1" + +STOPAGENT +FINISHED diff --git a/testing/fulltests/default/T070com2sec_simple b/testing/fulltests/default/T070com2sec_simple new file mode 100644 index 0000000..9f76fcd --- /dev/null +++ b/testing/fulltests/default/T070com2sec_simple @@ -0,0 +1,159 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER com2sec directive + +SKIPIFNOT NETSNMP_TRANSPORT_UDP_DOMAIN +SKIPIF NETSNMP_NO_DEBUGGING + +# +# Begin test +# + +# 401a Test missing CONTEXT +CONFIGAGENT 'com2sec -Cn' +# 401b Test empty CONTEXT +CONFIGAGENT 'com2sec -Cn ""' +# 401c Test overlong CONTEXT (34 chars) +CONFIGAGENT 'com2sec -Cn 1234567890123456789012345678901234' + +# 402a Test missing secName +CONFIGAGENT 'com2sec' +# 402b Test empty secName +CONFIGAGENT 'com2sec ""' +# 402c Test overlong secName (34 chars) +CONFIGAGENT 'com2sec 1234567890123456789012345678901234' +# 402d Test valid context and missing secName +CONFIGAGENT 'com2sec -Cn 123456789012345678901234567890123' +# 402e Test valid context and empty secName +CONFIGAGENT 'com2sec -Cn 123456789012345678901234567890123 ""' + +# 403a Test missing network address +CONFIGAGENT 'com2sec t403a' +# 403b Test empty network address +CONFIGAGENT 'com2sec t403b ""' +# 403c Test forbidden value (now why it is forbidden...) +CONFIGAGENT 'com2sec t403c NETWORK' + +# 404a Test missing community +CONFIGAGENT 'com2sec t404a default' +# 404b Test empty community +CONFIGAGENT 'com2sec t404b default ""' +# 404c Test forbidden value (now why it is forbidden...) +CONFIGAGENT 'com2sec t404c default COMMUNITY' +# 404d Test overlong community (255 chars) +CONFIGAGENT 'com2sec t404d default 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345' +# 404e Test valid community +CONFIGAGENT 'com2sec t404e default 12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234' + +# 405a Test 'default' configuration +CONFIGAGENT 'com2sec t405a default c405a' +# 405b Test ip address configuration +CONFIGAGENT 'com2sec t405b 10.0.0.0 c405b' +# 405c Test valid numeric mask +CONFIGAGENT 'com2sec t405c 10.0.0.0/8 c405c' +# 405d Test invalid numeric mask (too big) +CONFIGAGENT 'com2sec t405d 10.0.0.0/33 c405d' +# 405e Test invalid numeric mask (negative) +CONFIGAGENT 'com2sec t405e 10.0.0.0/-1 c405e' +# 405f Test valid ip address mask +CONFIGAGENT 'com2sec t405f 10.0.0.0/255.0.0.0 c405f' +# 405g Test invalid ip address mask +CONFIGAGENT 'com2sec t405g 10.0.0.0/512.0.0.0 c405g' +# 405h Test invalid ip address mask +CONFIGAGENT 'com2sec t405h 10.0.0.0/hh c405h' +# 405i Test address with 1 bits not covered by the mask +CONFIGAGENT 'com2sec t405i 10.0.0.0/3.192.0.0 c405i' +# 405j Test that 0.0.0.0 works (alias for default) +CONFIGAGENT 'com2sec t405j 0.0.0.0 c405j' +# 405k Test that 0.0.0.0/0 works (alias for default) +CONFIGAGENT 'com2sec t405k 0.0.0.0/0 c405k' +# 405l Test that 0.0.0.0/0.0.0.0 works (alias for default) +CONFIGAGENT 'com2sec t405l 0.0.0.0/0.0.0.0 c405l' + +# 406a Test maximally long address/mask +CONFIGAGENT 'com2sec t406a 255.255.255.255/255.255.255.255 c406a' + +# 407a Test non existant host name +CONFIGAGENT 'com2sec t407a no.such.address. c407a' +# 407b Test maximally long host name/mask +CONFIGAGENT 'com2sec t407b a23456789012345678901234567890123456789012345678901234567890123.a23456789012345678901234567890123456789012345678901234567890123.a23456789012345678901234567890123456789012345678901234567890123.a234567890123456789012345678901234567890123456789012345678901./255.255.255.255 c407b' + +# 408 Lookup tests, require network access +# 408a Test lookup returning a single host +CONFIGAGENT 'com2sec t408a www.ietf.org c408a' +# 408a Test lookup returning multiple hosts +CONFIGAGENT 'com2sec t408b www.google.com c408b' + +# Default agent setup +CONFIGAGENT "[snmp] persistentdir $SNMP_TMP_PERSISTENTDIR" +# Dummy config to prevent the basic_setup warning +CONFIGAGENT 'rocommunity public 127.0.0.0/8' + +AGENT_FLAGS='-Dnetsnmp_udp_parse_security,netsnmp_udp6_parse_security,netsnmp_unix_parse_security' + +STARTAGENT + +SAVECHECKAGENT() { + CHECKAGENT "$@" + if [ "x$return_value" != "x0" ] ; then + FINISHED + fi +} + +SAVECHECKAGENT 'line 1: Error: missing CONTEXT_NAME parameter' +SAVECHECKAGENT 'line 2: Error: missing NAME parameter' +SAVECHECKAGENT 'line 3: Error: context name too long' +CHECKAGENTCOUNT atleastone 'line 4: Error: Blank line following com2sec token.' +SAVECHECKAGENT 'line 5: Error: empty NAME parameter' +SAVECHECKAGENT 'line 6: Error: security name too long' +SAVECHECKAGENT 'line 7: Error: missing NAME parameter' +SAVECHECKAGENT 'line 8: Error: empty NAME parameter' +SAVECHECKAGENT 'line 9: Error: missing SOURCE parameter' +SAVECHECKAGENT 'line 10: Error: empty SOURCE parameter' +SAVECHECKAGENT 'line 11: Error: example config NETWORK not properly configured' +SAVECHECKAGENT 'line 12: Error: missing COMMUNITY parameter' +SAVECHECKAGENT 'line 13: Error: empty COMMUNITY parameter' +SAVECHECKAGENT 'line 14: Error: example config COMMUNITY not properly configured' +SAVECHECKAGENT 'line 15: Error: community name too long' +SAVECHECKAGENT '<"12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234", 0.0.0.0/0.0.0.0> => "t404e"' +SAVECHECKAGENT '<"c405a", 0.0.0.0/0.0.0.0> => "t405a"' +SAVECHECKAGENT '<"c405b", 10.0.0.0/255.255.255.255> => "t405b"' +SAVECHECKAGENT '<"c405c", 10.0.0.0/255.0.0.0> => "t405c"' +SAVECHECKAGENT 'line 20: Error: bad mask length' +SAVECHECKAGENT 'line 21: Error: bad mask length' +SAVECHECKAGENT '<"c405f", 10.0.0.0/255.0.0.0> => "t405f"' +SAVECHECKAGENT 'line 23: Error: bad mask' +SAVECHECKAGENT 'line 24: Error: bad mask' +SAVECHECKAGENT 'line 25: Error: source/mask mismatch' +SAVECHECKAGENT '<"c405j", 0.0.0.0/255.255.255.255> => "t405j"' +SAVECHECKAGENT '<"c405k", 0.0.0.0/0.0.0.0> => "t405k"' +SAVECHECKAGENT '<"c405l", 0.0.0.0/0.0.0.0> => "t405l"' +SAVECHECKAGENT '<"c406a", 255.255.255.255/255.255.255.255> => "t406a"' +SAVECHECKAGENT 'line 30: Error:' # msg from h_strerror so it varies +SAVECHECKAGENT 'line 31: Error:' # msg from h_strerror so it varies + +CHECKAGENT '<"c408a"' +if [ "$snmp_last_test_result" -eq 0 ] ; then + CHECKAGENT 'line 32: Error:' + if [ "$snmp_last_test_result" -ne 1 ] ; then + return_value=1 + FINISHED + fi +elif [ "$snmp_last_test_result" -ne 1 ] ; then + return_value=1 + FINISHED +fi + +CHECKAGENT '<"c408b"' +if [ "$snmp_last_test_result" -eq 0 ] ; then + CHECKAGENT 'line 33: Error:' + if [ "$snmp_last_test_result" -ne 1 ] ; then + return_value=1 + fi +elif [ "$snmp_last_test_result" -ne 1 ] ; then + return_value=1 +fi + +FINISHED diff --git a/testing/fulltests/default/T071com2sec6_simple b/testing/fulltests/default/T071com2sec6_simple new file mode 100644 index 0000000..550a25b --- /dev/null +++ b/testing/fulltests/default/T071com2sec6_simple @@ -0,0 +1,155 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER com2sec6 directive + +SKIPIFNOT NETSNMP_TRANSPORT_UDPIPV6_DOMAIN +SKIPIF NETSNMP_NO_DEBUGGING + +# +# Begin test +# + +# 601a Test missing CONTEXT +CONFIGAGENT 'com2sec6 -Cn' +# 601b Test empty CONTEXT +CONFIGAGENT 'com2sec6 -Cn ""' +# 601c Test overlong CONTEXT (34 chars) +CONFIGAGENT 'com2sec6 -Cn 1234567890123456789012345678901234' + +# 602a Test missing secName +CONFIGAGENT 'com2sec6' +# 602b Test empty secName +CONFIGAGENT 'com2sec6 ""' +# 602c Test overlong secName (34 chars) +CONFIGAGENT 'com2sec6 1234567890123456789012345678901234' +# 602d Test valid context and missing secName +CONFIGAGENT 'com2sec6 -Cn 123456789012345678901234567890123' +# 602e Test valid context and empty secName +CONFIGAGENT 'com2sec6 -Cn 123456789012345678901234567890123 ""' + +# 603a Test missing network address +CONFIGAGENT 'com2sec6 t603a' +# 603b Test empty network address +CONFIGAGENT 'com2sec6 t603b ""' +# 603c Test forbidden value +CONFIGAGENT 'com2sec6 t603c NETWORK' + +# 604a Test missing COMMUNITY +CONFIGAGENT 'com2sec6 t604a default' +# 604b 'Error: empty COMMUNITY parameter' +CONFIGAGENT 'com2sec6 t604b default ""' +# 604c Test overlong COMMUNITY +CONFIGAGENT 'com2sec6 t604c default 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345' +# 604d Test barely valid community +CONFIGAGENT 'com2sec6 t604d default 12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234' +# 604e Test forbidden value +CONFIGAGENT 'com2sec6 t604e default COMMUNITY' + +# 605a Test 'default' configuration +CONFIGAGENT 'com2sec6 t605a default c605a' +# 605b Test ip address configuration +CONFIGAGENT 'com2sec6 t605b aa00:: c605b' +# 605c Test valid numeric mask +CONFIGAGENT 'com2sec6 t605c aa00::/8 c605c' +# 605d Test invalid numeric mask (too big) +CONFIGAGENT 'com2sec6 t605d aa00::/129 c605d' +# 605e Test invalid numeric mask (negative) +CONFIGAGENT 'com2sec6 t605e aa00::/-1 c605e' +# 605f Test valid ip address mask +CONFIGAGENT 'com2sec6 t605f aa00::/ff00:: c605f' +# 605g Test invalid ip address mask +CONFIGAGENT 'com2sec6 t605g aa00::/fffff:: c605g' +# 605h Test invalid ip address mask +CONFIGAGENT 'com2sec6 t605h aa00::/gg00:: c605h' +# 605i Test address with 1 bits not covered by the mask +CONFIGAGENT 'com2sec6 t605i aa00::/0ff0:: c605i' + +# 606a Test maximally long address/mask +CONFIGAGENT 'com2sec6 t606a ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff c606a' + +# 607a Test non existant host name +CONFIGAGENT 'com2sec6 t607a no.such.address. c607a' +# 607b Test maximally long host name/mask +CONFIGAGENT 'com2sec6 t607b a23456789012345678901234567890123456789012345678901234567890123.a23456789012345678901234567890123456789012345678901234567890123.a23456789012345678901234567890123456789012345678901234567890123.a234567890123456789012345678901234567890123456789012345678901./ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff c607b' + +# 608 Lookup tests, require network access +# 608a Test lookup returning a single host +CONFIGAGENT 'com2sec6 t608a www.ietf.org c608a' +# 608b Test lookup returning multiple hosts +CONFIGAGENT 'com2sec6 t608b ipv6.google.com c608b' + +# Default agent setup +CONFIGAGENT "[snmp] persistentdir $SNMP_TMP_PERSISTENTDIR" +# Dummy config to prevent the basic_setup warning +CONFIGAGENT 'rocommunity public 127.0.0.0/8' + +AGENT_FLAGS='-Dnetsnmp_udp_parse_security,netsnmp_udp6_parse_security,netsnmp_unix_parse_security' + +STARTAGENT + +SAVECHECKAGENT() { + CHECKAGENT "$@" + if [ "x$return_value" != "x0" ] ; then + FINISHED + fi +} + +# 601 +SAVECHECKAGENT 'line 1: Error: missing CONTEXT_NAME parameter' +SAVECHECKAGENT 'line 2: Error: missing NAME parameter' +SAVECHECKAGENT 'line 3: Error: context name too long' +# 602 +CHECKAGENTCOUNT atleastone 'line 4: Error: Blank line following com2sec6 token.' +SAVECHECKAGENT 'line 5: Error: empty NAME parameter' +SAVECHECKAGENT 'line 6: Error: security name too long' +SAVECHECKAGENT 'line 7: Error: missing NAME parameter' +SAVECHECKAGENT 'line 8: Error: empty NAME parameter' +# 603 +SAVECHECKAGENT 'line 9: Error: missing SOURCE parameter' +SAVECHECKAGENT 'line 10: Error: empty SOURCE parameter' +SAVECHECKAGENT 'line 11: Error: example config NETWORK not properly configured' +# 604 +SAVECHECKAGENT 'line 12: Error: missing COMMUNITY parameter' +SAVECHECKAGENT 'line 13: Error: empty COMMUNITY parameter' +SAVECHECKAGENT 'line 14: Error: community name too long' +SAVECHECKAGENT '<"12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234", ::/::> => "t604d"' +SAVECHECKAGENT 'line 16: Error: example config COMMUNITY not properly configured' +# 605 +SAVECHECKAGENT '<"c605a", ::/::> => "t605a"' +SAVECHECKAGENT '<"c605b", aa00::/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff> => "t605b"' +SAVECHECKAGENT '<"c605c", aa00::/ff00::> => "t605c"' +SAVECHECKAGENT 'line 20: Error: bad mask length' +SAVECHECKAGENT 'line 21: Error: bad mask length' +SAVECHECKAGENT '<"c605f", aa00::/ff00::> => "t605f"' +SAVECHECKAGENT 'line 23: Error: bad mask' +SAVECHECKAGENT 'line 24: Error: bad mask' +SAVECHECKAGENT 'line 25: Error: source/mask mismatch' +# 606 +SAVECHECKAGENT '<"c606a", ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff> => "t606a"' +# 607 +SAVECHECKAGENT 'line 27: Error:' +SAVECHECKAGENT 'line 28: Error:' + +# 608 +CHECKAGENT '<"c608a"' +if [ "$snmp_last_test_result" -eq 0 ] ; then + CHECKAGENT 'line 29: Error:' + errnum=`expr $errnum - 1` + if [ "$snmp_last_test_result" -ne 1 ] ; then + FINISHED + fi +elif [ "$snmp_last_test_result" -ne 1 ] ; then + FINISHED +fi + +CHECKAGENTCOUNT atleastone '<"c608b"' +if [ "$snmp_last_test_result" -eq 0 ] ; then + CHECKAGENT 'line 30: Error:' + if [ "$snmp_last_test_result" -eq 1 ] ; then + errnum=`expr $errnum - 1` + fi +fi + +FINISHED diff --git a/testing/fulltests/default/T072com2secunix_simple b/testing/fulltests/default/T072com2secunix_simple new file mode 100644 index 0000000..a89de5d --- /dev/null +++ b/testing/fulltests/default/T072com2secunix_simple @@ -0,0 +1,111 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER com2secunix directive + +SKIPIFNOT NETSNMP_TRANSPORT_UNIX_DOMAIN +SKIPIF NETSNMP_NO_DEBUGGING +SKIPIFNOT SIZEOF_SOCKADDR_UN_SUN_PATH + +# +# Prepare test +# +if [ `uname -s` = SunOS ] +then AWK=nawk +else AWK=awk +fi + +sun_path_sized=`$AWK '/^#define SIZEOF_SOCKADDR_UN_SUN_PATH/ { res = "a"; for(n = 2; n < $3; ++n) { res = res substr("1234567890", n % 10, 1); } print res; }' $SNMP_UPDIR/include/net-snmp/net-snmp-config.h` + +# +# Begin test +# + +# u01a Test missing CONTEXT +CONFIGAGENT 'com2secunix -Cn' +# u01a Test empty CONTEXT +CONFIGAGENT 'com2secunix -Cn ""' +# u01c Test overlong CONTEXT (34 chars) +CONFIGAGENT 'com2secunix -Cn 1234567890123456789012345678901234' + +# u02a Test missing secName +CONFIGAGENT 'com2secunix' +# u02b Test empty secName +CONFIGAGENT 'com2secunix ""' +# u02c Test overlong secName (34 chars) +CONFIGAGENT 'com2secunix 1234567890123456789012345678901234' +# u02d Test valid context and missing secName +CONFIGAGENT 'com2secunix -Cn 123456789012345678901234567890123' +# u02e Test valid context and empty secName +CONFIGAGENT 'com2secunix -Cn 123456789012345678901234567890123 ""' + +# u03a Test missing sockpath +CONFIGAGENT 'com2secunix tu03a' +# u03b Test empty sockpath +CONFIGAGENT 'com2secunix tu03b ""' +# u03c Test overlong sockpath (sizeof(sockaddr_un.sun_path) chars) +CONFIGAGENT "com2secunix tu03c ${sun_path_sized}x" +# u03d Test valid sockpath (sizeof(sockaddr_un.sun_path) - 1 chars) +CONFIGAGENT "com2secunix tu03d ${sun_path_sized}" + +# u04a Test missing community +CONFIGAGENT 'com2secunix tu04a default' +# u04b Test empty community +CONFIGAGENT 'com2secunix tu04b default ""' +# u04c Test forbidden value (now why it is forbidden...) +CONFIGAGENT 'com2secunix tu04c default COMMUNITY' +# u04d Test overlong community (255 chars) +CONFIGAGENT 'com2secunix tu04d default 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345' +# u04e Test valid community +CONFIGAGENT 'com2secunix tu04e default 12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234' + +# u05a Test 'default' configuration +CONFIGAGENT 'com2secunix tu05a default cu05a' + +# u07a Test non existant sockpath +CONFIGAGENT 'com2secunix tu07a /dev/null/no/such cu07a' + +# Default agent setup +CONFIGAGENT "[snmp] persistentdir $SNMP_TMP_PERSISTENTDIR" +# Dummy config to prevent the basic_setup warning +CONFIGAGENT 'rocommunity public 127.0.0.0/8' + +AGENT_FLAGS='-Dnetsnmp_udp_parse_security,netsnmp_udp6_parse_security,netsnmp_unix_parse_security' + +STARTAGENT + +SAVECHECKAGENT() { + CHECKAGENT "$@" + if [ "x$return_value" != "x0" ] ; then + FINISHED + fi +} + +# u01 +SAVECHECKAGENT 'line 1: Error: missing CONTEXT_NAME parameter' +SAVECHECKAGENT 'line 2: Error: missing NAME parameter' +SAVECHECKAGENT 'line 3: Error: context name too long' +# u02 +CHECKAGENTCOUNT atleastone 'line 4: Error: Blank line following com2secunix token.' +SAVECHECKAGENT 'line 5: Error: empty NAME parameter' +SAVECHECKAGENT 'line 6: Error: security name too long' +SAVECHECKAGENT 'line 7: Error: missing NAME parameter' +SAVECHECKAGENT 'line 8: Error: empty NAME parameter' +# u03 +SAVECHECKAGENT 'line 9: Error: missing SOCKPATH parameter' +SAVECHECKAGENT 'line 10: Error: empty SOCKPATH parameter' +SAVECHECKAGENT 'line 11: Error: sockpath too long' +SAVECHECKAGENT 'line 12: Error: missing COMMUNITY parameter' +# u04 +SAVECHECKAGENT 'line 13: Error: missing COMMUNITY parameter' +SAVECHECKAGENT 'line 14: Error: empty COMMUNITY parameter' +SAVECHECKAGENT 'line 15: Error: example config COMMUNITY not properly configured' +SAVECHECKAGENT 'line 16: Error: community name too long' +SAVECHECKAGENT '<"12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234", ""> => "tu04e"' +# u05 +SAVECHECKAGENT '<"cu05a", ""> => "tu05a"' +# u07 +SAVECHECKAGENT '<"cu07a", "/dev/null/no/such"> => "tu07a"' + +FINISHED diff --git a/testing/fulltests/default/T100agenthup_simple b/testing/fulltests/default/T100agenthup_simple new file mode 100755 index 0000000..d4949e1 --- /dev/null +++ b/testing/fulltests/default/T100agenthup_simple @@ -0,0 +1,36 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER that the agent responds properly to a kill -HUP + +SKIPIF NETSNMP_DISABLE_SNMPV1 + +SKIPIFNOT HAVE_SIGHUP + +# +# Begin test +# + +# standard V1 configuration: testcomunnity +. ./Sv1config + +STARTAGENT + +# add a agent configuration line that wouldn't have been there when +# the started up. +CONFIGAGENT syslocation not-anywhere-in-particular + +# kill -HUP the agent to get it to re-read the .conf file. +DELAY +kill -HUP `cat $SNMP_SNMPD_PID_FILE` > /dev/null 2>&1 +DELAY + +# And see if it has the new value. +CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.6.0" + +STOPAGENT + +CHECK "not-anywhere-in-particular" + +FINISHED diff --git a/testing/fulltests/default/T110agentxget_simple b/testing/fulltests/default/T110agentxget_simple new file mode 100644 index 0000000..2f91d36 --- /dev/null +++ b/testing/fulltests/default/T110agentxget_simple @@ -0,0 +1,59 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER AgentX GET support + +SKIPIFNOT USING_AGENTX_MASTER_MODULE +SKIPIFNOT USING_AGENTX_SUBAGENT_MODULE +SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE + +# +# Begin test +# + +# standard V3 configuration for initial user +. ./Sv3config + +# Start the agent without initializing the system mib. +if [ "x$SNMP_TRANSPORT_SPEC" = "xunix" ];then +ORIG_AGENT_FLAGS="$AGENT_FLAGS -x $SNMP_TMPDIR/agentx_socket" +else +ORIG_AGENT_FLAGS="$AGENT_FLAGS -x tcp:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT}" +fi +AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -system_mib,winExtDLL" +STARTAGENT + +# test to see that the current agent doesn't support the system mib +CAPTURE "snmpget -On $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" + +CHECK ".1.3.6.1.2.1.1.3.0 = No Such Object" + +if test "$snmp_last_test_result" = 1; then + # test the agentx subagent by first running it... + + SNMP_SNMPD_PID_FILE_ORIG=$SNMP_SNMPD_PID_FILE + SNMP_SNMPD_LOG_FILE_ORIG=$SNMP_SNMPD_LOG_FILE + SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE.num2 + SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE.num2 + AGENT_FLAGS="$ORIG_AGENT_FLAGS -X -I system_mib" + SNMP_CONFIG_FILE="$SNMP_TMPDIR/bogus.conf" + STARTAGENT + + # test to see that the agent now supports setting the system mib + CAPTURE "snmpget -On $SNMP_FLAGS -t 3 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" + + CHECK ".1.3.6.1.2.1.1.3.0 = Timeticks:" + + # stop the subagent + STOPAGENT + + SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE_ORIG + SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE_ORIG +fi + +# stop the master agent +STOPAGENT + +# all done (whew) +FINISHED diff --git a/testing/fulltests/default/T111agentxset_simple b/testing/fulltests/default/T111agentxset_simple new file mode 100644 index 0000000..87939bd --- /dev/null +++ b/testing/fulltests/default/T111agentxset_simple @@ -0,0 +1,78 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER AgentX SET support + +SKIPIFNOT USING_AGENTX_MASTER_MODULE +SKIPIFNOT USING_AGENTX_SUBAGENT_MODULE +SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE +SKIPIF NETSNMP_DISABLE_SET_SUPPORT +SKIPIF NETSNMP_NO_WRITE_SUPPORT + +# +# Begin test +# + +# standard V3 configuration for initial user +. ./Sv3config + +# Start the agent without initializing the system mib. +if [ "x$SNMP_TRANSPORT_SPEC" = "xunix" ];then +ORIG_AGENT_FLAGS="$AGENT_FLAGS -x $SNMP_TMPDIR/agentx_socket" +else +ORIG_AGENT_FLAGS="$AGENT_FLAGS -x tcp:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT}" +fi +AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -system_mib,winExtDLL -DAgentX" +STARTAGENT + +# test to see that the current agent doesn't support the system mib +CAPTURE "snmpget -On -t 3 $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0" + +CHECK ".1.3.6.1.2.1.1.4.0 = No Such Object" + +if test "$snmp_last_test_result" = 1; then + # test the AgentX subagent by first running it... + + SNMP_SNMPD_PID_FILE_ORIG=$SNMP_SNMPD_PID_FILE + SNMP_SNMPD_LOG_FILE_ORIG=$SNMP_SNMPD_LOG_FILE + SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE.num2 + SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE.num2 + AGENT_FLAGS="$ORIG_AGENT_FLAGS -X -I system_mib" + SNMP_CONFIG_FILE="$SNMP_TMPDIR/bogus.conf" + echo "psyscontact testcontact" >> $SNMP_CONFIG_FILE + STARTAGENT + + # test to see that the agent now supports the system mib + CAPTURE "snmpget -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0" + + CHECK ".1.3.6.1.2.1.1.4.0 = STRING: \"*testcontact" + + if test "$snmp_last_test_result" = 1; then + + # test to see that the agent now supports setting the system mib + CAPTURE "snmpset -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0 s newtestcontact" + + CHECK ".1.3.6.1.2.1.1.4.0 = STRING: \"*newtestcontact" + + if test "$snmp_last_test_result" = 1; then + + # test to see that the agent now supports the system mib + CAPTURE "snmpget -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0" + + CHECK ".1.3.6.1.2.1.1.4.0 = STRING: \"*newtestcontact" + fi + fi + + # stop the subagent + STOPAGENT + + SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE_ORIG + SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE_ORIG +fi + +# stop the master agent +STOPAGENT + +# all done (whew) +FINISHED diff --git a/testing/fulltests/default/T112agentxsetfail_simple b/testing/fulltests/default/T112agentxsetfail_simple new file mode 100644 index 0000000..d610b41 --- /dev/null +++ b/testing/fulltests/default/T112agentxsetfail_simple @@ -0,0 +1,72 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER AgentX illegal SET handling support + +SKIPIFNOT USING_AGENTX_MASTER_MODULE +SKIPIFNOT USING_AGENTX_SUBAGENT_MODULE +SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE +SKIPIF NETSNMP_DISABLE_SET_SUPPORT +SKIPIF NETSNMP_NO_WRITE_SUPPORT + +# +# Begin test +# + +# standard V3 configuration for initial user +. ./Sv3config + +# Start the agent without initializing the system mib. +if [ "x$SNMP_TRANSPORT_SPEC" = "xunix" ];then +ORIG_AGENT_FLAGS="$AGENT_FLAGS -x $SNMP_TMPDIR/agentx_socket" +else +ORIG_AGENT_FLAGS="$AGENT_FLAGS -x tcp:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT}" +fi +AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -system_mib,winExtDLL -DAgentX" +STARTAGENT + +# test to see that the current agent doesn't support the system mib +CAPTURE "snmpget -On -t 3 $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0" + +CHECK ".1.3.6.1.2.1.1.4.0 = No Such Object" + +if test "$snmp_last_test_result" = 1; then + # test the AgentX subagent by first running it... + + SNMP_SNMPD_PID_FILE_ORIG=$SNMP_SNMPD_PID_FILE + SNMP_SNMPD_LOG_FILE_ORIG=$SNMP_SNMPD_LOG_FILE + SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE.num2 + SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE.num2 + AGENT_FLAGS="$ORIG_AGENT_FLAGS -X -I system_mib" + SNMP_CONFIG_FILE="$SNMP_TMPDIR/bogus.conf" + STARTAGENT + + # test to see that the agent now supports the system mib + CAPTURE "snmpget -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0" + + # we don't know the real value, unfortunately, so we test for what + # we should *not* get back. + CHECKCOUNT 0 ".1.3.6.1.2.1.1.4.0 = No Such Object" + + if test "$snmp_last_test_result" = 0; then + + # test to see that the agent now supports setting the system mib + CAPTURE "snmpset -On -Ir $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0 i 4" + + CHECK "wrongType" + + fi + + # stop the subagent + STOPAGENT + + SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE_ORIG + SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE_ORIG +fi + +# stop the master agent +STOPAGENT + +# all done (whew) +FINISHED diff --git a/testing/fulltests/default/T113agentxtrap_simple b/testing/fulltests/default/T113agentxtrap_simple new file mode 100644 index 0000000..4fa5e2f --- /dev/null +++ b/testing/fulltests/default/T113agentxtrap_simple @@ -0,0 +1,79 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER AgentX trap sending support + +SKIPIFNOT USING_AGENTX_MASTER_MODULE +SKIPIFNOT USING_AGENTX_SUBAGENT_MODULE +SKIPIFNOT USING_EXAMPLES_EXAMPLE_MODULE +SKIPIFNOT NETSNMP_SECMOD_USM + +# +# Begin test +# + +# start the trap demon +CONFIGTRAPD authcommunity log public +STARTTRAPD + +# standard V3 configuration for initial user +. ./Sv3config +# configure the trap receiver. +CONFIGAGENT trapsink ${SNMP_TRANSPORT_SPEC}:${SNMP_TEST_DEST}${SNMP_SNMPTRAPD_PORT} public + +# Start the agent without initializing the example mib. +if [ "x$SNMP_TRANSPORT_SPEC" = "xunix" ];then +ORIG_AGENT_FLAGS="$AGENT_FLAGS -x $SNMP_TMPDIR/agentx_socket" +else +ORIG_AGENT_FLAGS="$AGENT_FLAGS -x tcp:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT}" +fi +AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -example" +STARTAGENT + +# test to see that the current agent doesn't support the example mib +CAPTURE "snmpget -On -t 3 $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.2021.254.1.0" + +CHECK "No Such Object" + +if test "$snmp_last_test_result" = 1; then + # test the AgentX subagent by first running it... + + SNMP_SNMPD_PID_FILE_ORIG=$SNMP_SNMPD_PID_FILE + SNMP_SNMPD_LOG_FILE_ORIG=$SNMP_SNMPD_LOG_FILE + SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE.num2 + SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE.num2 + AGENT_FLAGS="$ORIG_AGENT_FLAGS -X -I example -Dadd" + SNMP_CONFIG_FILE="$SNMP_TMPDIR/bogus.conf" + + STARTAGENT + + # test to see that the agent now supports the example mib + CAPTURE "snmpget -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.2021.254.1.0" + + CHECK "life the universe and everything" + + if test "$snmp_last_test_result" = 1; then + + # test to see that the agent now sends a trap from the exmaple mib + CAPTURE "snmpset -On -r 0 -t 3 $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.2021.254.8.0 i 1" + DELAY + CHECKTRAPD "life the universe and everything" + + fi + + # stop the subagent + STOPAGENT + + SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE_ORIG + SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE_ORIG +fi + +# stop the master agent +STOPAGENT + +# stop the trap demon +STOPTRAPD + +# all done (whew) +FINISHED diff --git a/testing/fulltests/default/T114agentxagentxtrap_simple b/testing/fulltests/default/T114agentxagentxtrap_simple new file mode 100644 index 0000000..58475d0 --- /dev/null +++ b/testing/fulltests/default/T114agentxagentxtrap_simple @@ -0,0 +1,44 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER AgentX trap sending support using agentxtrap + +SKIPIFNOT USING_AGENTX_MASTER_MODULE +SKIPIFNOT NETSNMP_SECMOD_USM + +# +# Begin test +# + +# start the trap demon +CONFIGTRAPD authcommunity log public +STARTTRAPD + +# standard V3 configuration for initial user +. ./Sv3config +# configure the trap receiver. +CONFIGAGENT trap2sink ${SNMP_TRANSPORT_SPEC}:${SNMP_TEST_DEST}${SNMP_SNMPTRAPD_PORT} public + +# Start the agent +if [ "x$SNMP_TRANSPORT_SPEC" = "xunix" ];then +AGENTX_SERVER="-x $SNMP_TMPDIR/agentx_socket" +else +AGENTX_SERVER="-x tcp:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT}" +fi +AGENT_FLAGS="$AGENT_FLAGS $AGENTX_SERVER" +STARTAGENT + +CAPTURE "agentxtrap $AGENTX_SERVER 0.0 0.0 s mostly_harmless" + +# stop the master agent +STOPAGENT + +# stop the trap demon +STOPTRAPD + +# Check that the trap was received +CHECKTRAPD "= STRING: \"*mostly_harmless\"*" + +# all done (whew) +FINISHED diff --git a/testing/fulltests/default/T115agentxperl_simple b/testing/fulltests/default/T115agentxperl_simple new file mode 100755 index 0000000..a44a202 --- /dev/null +++ b/testing/fulltests/default/T115agentxperl_simple @@ -0,0 +1,115 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER 'AgentX subagent in Perl (using NetSNMP::agent)' + +SKIPIF NETSNMP_DISABLE_SNMPV2C +SKIPIFNOT USING_AGENTX_MASTER_MODULE +SKIPIFNOT USING_AGENTX_SUBAGENT_MODULE +SKIPIFNOT HAVE_SIGHUP +# make sure the toolkit has been configured --with-perl-modules +[ -d ${SNMP_UPDIR}/perl/blib/arch/auto/NetSNMP/agent ] || SKIP + +# +# Begin test +# + +snmp_version=v2c +TESTCOMMUNITY=testcommunity +. ./Sv2cconfig + +TESTOID=.1.3.6.1.4.1.8872.9999.9999.1.0 +TESTOID2=.1.3.6.1.4.1.8872.9999.9999.2.0 +AGENTX_SOCKET=${SNMP_TMPDIR}/agentx_socket +PERL_SUBAGENT=${SNMP_TMPDIR}/hello.pl +PERL_SUBAGENT_CONF=${SNMP_TMPDIR}/hello.conf + +cat >$PERL_SUBAGENT <<END +#!${SNMP_PERLPROG} +# minimal AgentX subagent in Perl + +use blib qw(${SNMP_UPDIR}/perl); +use NetSNMP::OID qw(:all); +use NetSNMP::agent qw(:all); +use NetSNMP::ASN qw(:all); +use NetSNMP::agent::default_store; +use NetSNMP::default_store qw(:all); +use SNMP; + +## double-fork daemon +my \$pid; +unless (\$pid = fork) { + unless (fork) { + ## start main code + my \$regat = '.1.3.6.1.4.1.8872.9999.9999'; # netSnmpPlayPen + my \$myoid = \$regat . ".1.0"; # the "hello world" OID + my \$myoid2 = \$regat . ".2.0"; # the "hello again world" OID + + my \$pidfile = shift; # take PID file as first argument + open(PIDFILE, ">\$pidfile") or die "Couldn't open \$pidfile"; + print PIDFILE \$\$; + close(PIDFILE); + +sub my_snmp_handler { + my (\$handler, \$registration_info, \$request_info, \$requests) = @_; + for(my \$request = \$requests; \$request; \$request = \$request->next()) { + if (\$request_info->getMode() == MODE_GET) { + if (\$request->getOID() == new NetSNMP::OID(\$myoid)) { + \$request->setValue(ASN_OCTET_STR, "hello world"); + last; + } elsif (\$request->getOID() == new NetSNMP::OID(\$myoid2)) { + \$request->setValue(ASN_OCTET_STR, "hello again world"); + last; + } + } + } +} +sub shut_it_down { \$running = 0; } + + netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID, + NETSNMP_DS_AGENT_NO_ROOT_ACCESS, 1); + my \$agent = new NetSNMP::agent('Name' => 'hello', 'AgentX' => 1); + my \$regoid = new NetSNMP::OID(\$regat); + \$agent->register("hello", \$regoid, \&my_snmp_handler); + + \$SIG{'INT'} = \&shut_it_down; + \$SIG{'QUIT'} = \&shut_it_down; + \$running = 1; + while(\$running) { + \$agent->agent_check_and_process(1); + } + \$agent->shutdown(); + ## end main code + exit 0; + } + exit 0; +} +waitpid(\$pid, 0); +END + +echo "agentxsocket $AGENTX_SOCKET" > $PERL_SUBAGENT_CONF + +CONFIGAGENT master agentx +CONFIGAGENT agentxsocket $AGENTX_SOCKET + +STARTAGENT + +# start perl subagent +/usr/bin/env SNMPCONFPATH="${SNMP_TMPDIR}${SNMP_ENV_SEPARATOR}${SNMP_TMP_PERSISTENTDIR}" $SNMP_PERLPROG $PERL_SUBAGENT $SNMP_AGENTX_PID_FILE >$SNMP_AGENTX_LOG_FILE 2>&1 +DELAY + +## 1) SNMP GET against mib object implemented by the perl subagent +CAPTURE "snmpget -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT $TESTOID" +CHECK "hello world" + +## 2) persistency: reconfigure master agent (HUP), re-test +HUPAGENT +CAPTURE "snmpget -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT $TESTOID2" +CHECK "hello again world" + +## stop +STOPAGENT +STOPPROG $SNMP_AGENTX_PID_FILE + +FINISHED diff --git a/testing/fulltests/default/T120proxyget_simple b/testing/fulltests/default/T120proxyget_simple new file mode 100644 index 0000000..12c58fd --- /dev/null +++ b/testing/fulltests/default/T120proxyget_simple @@ -0,0 +1,67 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER Proxy GET support + +SKIPIFNOT USING_UCD_SNMP_PROXY_MODULE +SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE +SKIPIF NETSNMP_DISABLE_SNMPV2C + +# XXX: ucd-snmp/proxy doesn't properly support TCP -- remove this once it does +[ "x$SNMP_TRANSPORT_SPEC" = "xtcp" -o "x$SNMP_TRANSPORT_SPEC" = "xtcp6" ] && SKIP + +# +# Begin test +# + +# standard V3 configuration for initial user +. ./Sv3config +# config the proxy +CONFIGAGENT proxy -t 2 -r 1 -v 2c -c testcommunity $SNMP_TRANSPORT_SPEC:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT} .1.3.6.1.2.1.1 + +# Start the agent without initializing the system mib. +ORIG_AGENT_FLAGS="$AGENT_FLAGS" +AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -system_mib,winExtDLL -Dproxy" +STARTAGENT + +# test to see that the current agent doesn't support the system mib +#CAPTURE "snmpget -On -t 3 $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" + +#CHECK ".1.3.6.1.2.1.1.3.0 = No Such Object" + +#if test "$snmp_last_test_result" = 1; then + # test the proxy subagent by first running it... + + SNMP_SNMPD_PID_FILE_ORIG=$SNMP_SNMPD_PID_FILE + SNMP_SNMPD_LOG_FILE_ORIG=$SNMP_SNMPD_LOG_FILE + SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE.num2 + SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE.num2 + SNMP_CONFIG_FILE="$SNMP_TMPDIR/proxy.conf" + echo "rwcommunity testcommunity" >> $SNMP_CONFIG_FILE + if [ "$SNMP_TRANSPORT_SPEC" = "udp6" -o "$SNMP_TRANSPORT_SPEC" = "tcp6" ];then + echo "rwcommunity6 testcommunity" >> $SNMP_CONFIG_FILE + fi + AGENT_FLAGS=$ORIG_AGENT_FLAGS + ORIG_SNMP_SNMPD_PORT=$SNMP_SNMPD_PORT + SNMP_SNMPD_PORT="${SNMP_AGENTX_PORT}" + STARTAGENT + SNMP_SNMPD_PORT=$ORIG_SNMP_SNMPD_PORT + + # test to see that the agent now supports the system mib + CAPTURE "snmpget -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" + + CHECK ".1.3.6.1.2.1.1.3.0 = Timeticks:" + + # stop the subagent + STOPAGENT + + SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE_ORIG + SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE_ORIG +#fi + +# stop the master agent +STOPAGENT + +# all done (whew) +FINISHED diff --git a/testing/fulltests/default/T121proxyset_simple b/testing/fulltests/default/T121proxyset_simple new file mode 100644 index 0000000..977ddb9 --- /dev/null +++ b/testing/fulltests/default/T121proxyset_simple @@ -0,0 +1,86 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER Proxy SET support + +SKIPIFNOT USING_UCD_SNMP_PROXY_MODULE +SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE +SKIPIF NETSNMP_DISABLE_SNMPV2C +SKIPIF NETSNMP_DISABLE_SET_SUPPORT +SKIPIF NETSNMP_NO_WRITE_SUPPORT + +# XXX: ucd-snmp/proxy doesn't properly support TCP -- remove this once it does +[ "x$SNMP_TRANSPORT_SPEC" = "xtcp" -o "x$SNMP_TRANSPORT_SPEC" = "xtcp6" ] && SKIP + +# +# Begin test +# + +# standard V3 configuration for initial user +. ./Sv3config +# config the proxy +CONFIGAGENT proxy -t 2 -r 1 -v 2c -c testcommunity $SNMP_TRANSPORT_SPEC:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT} .1.3.6.1.2.1.1 + +# Start the agent without initializing the system mib. +ORIG_AGENT_FLAGS="$AGENT_FLAGS" +AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -system_mib,winExtDLL -Dproxy" +STARTAGENT + +# test to see that the current agent doesn't support the system mib +#CAPTURE "snmpget -On -t 3 $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" + +#CHECK ".1.3.6.1.2.1.1.3.0 = No Such Object" + +#if test "$snmp_last_test_result" = 1; then + # test the proxy subagent by first running it... + + SNMP_SNMPD_PID_FILE_ORIG=$SNMP_SNMPD_PID_FILE + SNMP_SNMPD_LOG_FILE_ORIG=$SNMP_SNMPD_LOG_FILE + SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE.num2 + SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE.num2 + SNMP_CONFIG_FILE="$SNMP_TMPDIR/proxy.conf" + echo "rwcommunity testcommunity" >> $SNMP_CONFIG_FILE + if [ "$SNMP_TRANSPORT_SPEC" = "udp6" -o "$SNMP_TRANSPORT_SPEC" = "tcp6" ];then + echo "rwcommunity6 testcommunity" >> $SNMP_CONFIG_FILE + fi + echo "psyscontact testcontact" >> $SNMP_CONFIG_FILE + AGENT_FLAGS="$ORIG_AGENT_FLAGS -Dmib_init" + ORIG_SNMP_SNMPD_PORT=$SNMP_SNMPD_PORT + SNMP_SNMPD_PORT="${SNMP_AGENTX_PORT}" + STARTAGENT + SNMP_SNMPD_PORT=$ORIG_SNMP_SNMPD_PORT + + # test to see that the agent now supports the system mib + CAPTURE "snmpget -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0" + + CHECK ".1.3.6.1.2.1.1.4.0 = STRING: \"*testcontact" + + if test "$snmp_last_test_result" = 1; then + + # test to see that the agent now supports the system mib + CAPTURE "snmpset -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0 s testnewcontact" + + CHECK ".1.3.6.1.2.1.1.4.0 = STRING: \"*testnewcontact" + + if test "$snmp_last_test_result" = 1; then + + # test to see that the agent now supports the system mib + CAPTURE "snmpget -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0" + + CHECK ".1.3.6.1.2.1.1.4.0 = STRING: \"*testnewcontact" + fi + fi + + # stop the subagent + STOPAGENT + + SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE_ORIG + SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE_ORIG +#fi + +# stop the master agent +STOPAGENT + +# all done (whew) +FINISHED diff --git a/testing/fulltests/default/T122proxysetfail_simple b/testing/fulltests/default/T122proxysetfail_simple new file mode 100644 index 0000000..7dad797 --- /dev/null +++ b/testing/fulltests/default/T122proxysetfail_simple @@ -0,0 +1,86 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER Proxy illegal SET handling support + +SKIPIFNOT USING_UCD_SNMP_PROXY_MODULE +SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE +SKIPIF NETSNMP_DISABLE_SNMPV2C +SKIPIF NETSNMP_DISABLE_SET_SUPPORT +SKIPIF NETSNMP_NO_WRITE_SUPPORT + +# XXX: ucd-snmp/proxy doesn't properly support TCP -- remove this once it does +[ "x$SNMP_TRANSPORT_SPEC" = "xtcp" ] && SKIP + +# +# Begin test +# + +# standard V3 configuration for initial user +. ./Sv3config +# config the proxy +CONFIGAGENT proxy -t 2 -r 1 -v 2c -c testcommunity $SNMP_TRANSPORT_SPEC:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT} .1.3.6.1.2.1.1 + +# Start the agent without initializing the system mib. +ORIG_AGENT_FLAGS="$AGENT_FLAGS" +AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -system_mib,winExtDLL -Dproxy" +STARTAGENT + +# test to see that the current agent doesn't support the system mib +#CAPTURE "snmpget -On -t 3 $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" + +#CHECK ".1.3.6.1.2.1.1.3.0 = No Such Object" + +#if test "$snmp_last_test_result" = 1; then + # test the proxy subagent by first running it... + + SNMP_SNMPD_PID_FILE_ORIG=$SNMP_SNMPD_PID_FILE + SNMP_SNMPD_LOG_FILE_ORIG=$SNMP_SNMPD_LOG_FILE + SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE.num2 + SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE.num2 + SNMP_CONFIG_FILE="$SNMP_TMPDIR/proxy.conf" + echo "rwcommunity testcommunity" >> $SNMP_CONFIG_FILE + if [ "$SNMP_TRANSPORT_SPEC" = "udp6" -o "$SNMP_TRANSPORT_SPEC" = "tcp6" ];then + echo "rwcommunity6 testcommunity" >> $SNMP_CONFIG_FILE + fi +# echo "syscontact testcontact" >> $SNMP_CONFIG_FILE + AGENT_FLAGS="$ORIG_AGENT_FLAGS -Dmib_init" + ORIG_SNMP_SNMPD_PORT=$SNMP_SNMPD_PORT + SNMP_SNMPD_PORT="${SNMP_AGENTX_PORT}" + STARTAGENT + SNMP_SNMPD_PORT=$ORIG_SNMP_SNMPD_PORT + + # test to see that the agent now supports the system mib + CAPTURE "snmpget -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0" + + + # we don't know the real value, unfortunately, so we test for what + # we should *not* get back. + CHECKCOUNT 0 ".1.3.6.1.2.1.1.4.0 = No Such Object" + + if test "$snmp_last_test_result" = 0; then + + # test to see that the agent now supports the system mib + CAPTURE "snmpset -On -Ir $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0 i 42" + + # 5.0.x snmpset shows error on single line + #CHECK ".1.3.6.1.2.1.1.4.0 = Wrong Type" + # 5.1.x snmpset shows error on multiple lines + CHECK "Reason: wrongType" + CHECK "Failed object: .1.3.6.1.2.1.1.4.0" + + fi + + # stop the subagent + STOPAGENT + + SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE_ORIG + SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE_ORIG +#fi + +# stop the master agent +STOPAGENT + +# all done (whew) +FINISHED diff --git a/testing/fulltests/default/T130snmpv1vacmget_simple b/testing/fulltests/default/T130snmpv1vacmget_simple new file mode 100644 index 0000000..80623f4 --- /dev/null +++ b/testing/fulltests/default/T130snmpv1vacmget_simple @@ -0,0 +1,32 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER SNMPv1 vacm acceptance support +SKIPIF NETSNMP_DISABLE_SNMPV1 + +# +# Begin test +# + +# standard V1 configuration: testcommunity1 testcommunity2 +# testcommunity1 can access .1.3.6.1.2.1.1.1, others are denied +# testcommunity2 can access all except .1.3.6.1.2.1.1.1 +# This case test for successful access +snmp_version=v1 +. ./Svacmconfig + +AGENT_FLAGS="$AGENT_FLAGS -I-winExtDLL" +STARTAGENT + +CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity1 -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.1.0" + +CHECKORDIE ".1.3.6.1.2.1.1.1.0 = STRING:" + +CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity2 -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" + +CHECK ".1.3.6.1.2.1.1.3.0 = Timeticks: " + +STOPAGENT + +FINISHED diff --git a/testing/fulltests/default/T131snmpv2cvacmget_simple b/testing/fulltests/default/T131snmpv2cvacmget_simple new file mode 100644 index 0000000..4f72370 --- /dev/null +++ b/testing/fulltests/default/T131snmpv2cvacmget_simple @@ -0,0 +1,35 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER SNMPv2 vacm acceptance support + +SKIPIF NETSNMP_DISABLE_SNMPV2C + +# +# Begin test +# + + +# standard V1 configuration: testcommunity1 testcommunity2 +# testcommunity1 can access .1.3.6.1.2.1.1.1, others are denied +# testcommunity2 can access all except .1.3.6.1.2.1.1.1 +# This case test for successful access + +snmp_version=v2c +. ./Svacmconfig + +STARTAGENT + +CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity1 -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.1.0" + +CHECKORDIE ".1.3.6.1.2.1.1.1.0 = STRING:" + +CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity2 -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" + +CHECK ".1.3.6.1.2.1.1.3.0 = Timeticks: " + + +STOPAGENT + +FINISHED diff --git a/testing/fulltests/default/T132snmpv3vacmget_simple b/testing/fulltests/default/T132snmpv3vacmget_simple new file mode 100644 index 0000000..004d0dd --- /dev/null +++ b/testing/fulltests/default/T132snmpv3vacmget_simple @@ -0,0 +1,31 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER SNMPv3 vacm acceptance support + +# +# Begin test +# + +# Configuration: +#initial1 can access .1.3.6.1.2.1.1.1, deny others +#initial2 can access all except .1.3.6.1.2.1.1.1 +#This case test for successful access + +snmp_version=v3 +. ./Sv3vacmconfig + +STARTAGENT + +CAPTURE "snmpget -On $SNMP_FLAGS -v3 -a MD5 -A initial_test_pass_auth -u initial1 -l anp $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.1.0" + +CHECKORDIE ".1.3.6.1.2.1.1.1.0 = STRING:" + +CAPTURE "snmpget -On $SNMP_FLAGS -v3 -a MD5 -A initial_test_pass_auth -u initial2 -l anp $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" + +CHECK ".1.3.6.1.2.1.1.3.0 = Timeticks: " + +STOPAGENT + +FINISHED diff --git a/testing/fulltests/default/T140snmpv1vacmgetfail_simple b/testing/fulltests/default/T140snmpv1vacmgetfail_simple new file mode 100644 index 0000000..a47f94d --- /dev/null +++ b/testing/fulltests/default/T140snmpv1vacmgetfail_simple @@ -0,0 +1,35 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER SNMPv1 vacm denial support + +SKIPIF NETSNMP_DISABLE_SNMPV1 + +# +# Begin test +# + +# standard V1 configuration: testcommunity1 testcommunity2 +# testcommunity1 can access .1.3.6.1.2.1.1.1, others are denied +# testcommunity2 can access all except .1.3.6.1.2.1.1.1 +# This case test for denied access + +snmp_version=v1 +. ./Svacmconfig + +STARTAGENT + + +CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity1 -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" + +CHECKORDIE "Reason: (noSuchName) There is no such variable name in this MIB." + + +CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity2 -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.1.0" + +CHECKORDIE "Reason: (noSuchName) There is no such variable name in this MIB." + +STOPAGENT + +FINISHED diff --git a/testing/fulltests/default/T141snmpv2cvacmgetfail_simple b/testing/fulltests/default/T141snmpv2cvacmgetfail_simple new file mode 100644 index 0000000..cd362aa --- /dev/null +++ b/testing/fulltests/default/T141snmpv2cvacmgetfail_simple @@ -0,0 +1,48 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER SNMPv2 vacm denial support + +SKIPIF NETSNMP_DISABLE_SNMPV2C +SKIPIF NETSNMP_DISABLE_SET_SUPPORT +SKIPIF NETSNMP_NO_WRITE_SUPPORT +SKIPIFNOT USING_MIBII_VACM_CONF_MODULE + +# +# Begin test +# + + +# standard V1 configuration: testcommunity1 testcommunity2 +# testcommunity1 can access .1.3.6.1.2.1.1.1, others are denied +# testcommunity2 can access all except .1.3.6.1.2.1.1.1 +# This case test for denied access + +snmp_version=v2c +. ./Svacmconfig + +STARTAGENT + + +CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity1 -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" +CHECKORDIE ".1.3.6.1.2.1.1.3.0 = No Such Object available on this agent at this OID" + +CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity2 -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.1.0" +CHECKORDIE ".1.3.6.1.2.1.1.1.0 = No Such Object available on this agent at this OID" + +CAPTURE "snmpset -On $SNMP_FLAGS -c testcommunity1 -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.5.0 s dummy" +CHECKORDIE "Reason: noAccess" + +CAPTURE "snmpset -On $SNMP_FLAGS -c testcommunity2 -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.5.0 s dummy" +CHECKORDIE "Reason: noAccess" + +CAPTURE "snmpset -On $SNMP_FLAGS -c testrwcommunity -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.5.0 s dummy" +CHECKORDIE ".1.3.6.1.2.1.1.5.0 = STRING: \"*dummy" + +CAPTURE "snmpset -On $SNMP_FLAGS -c testrocommunity -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.5.0 s dummy" +CHECKORDIE "Reason: noAccess" + +STOPAGENT + +FINISHED diff --git a/testing/fulltests/default/T142snmpv3vacmgetfail_simple b/testing/fulltests/default/T142snmpv3vacmgetfail_simple new file mode 100644 index 0000000..cfc000b --- /dev/null +++ b/testing/fulltests/default/T142snmpv3vacmgetfail_simple @@ -0,0 +1,32 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER SNMPv3 vacm denial support + +# +# Begin test +# + +# Configuration: +#initial1 can access .1.3.6.1.2.1.1.1, deny others +#initial2 can access all except .1.3.6.1.2.1.1.1 +#This case test for denied access + +snmp_version=v3 +. ./Sv3vacmconfig + +STARTAGENT + +CAPTURE "snmpget -On $SNMP_FLAGS -v3 -a MD5 -A initial_test_pass_auth -u initial1 -l anp $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" + +CHECKORDIE ".1.3.6.1.2.1.1.3.0 = No Such Object available on this agent at this OID" + + +CAPTURE "snmpget -On $SNMP_FLAGS -v3 -a MD5 -A initial_test_pass_auth -u initial2 -l anp $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.1.0" + +CHECKORDIE ".1.3.6.1.2.1.1.1.0 = No Such Object available on this agent at this OID" + +STOPAGENT + +FINISHED diff --git a/testing/fulltests/default/T150solarishostcpu_simple b/testing/fulltests/default/T150solarishostcpu_simple new file mode 100644 index 0000000..4a3ee6a --- /dev/null +++ b/testing/fulltests/default/T150solarishostcpu_simple @@ -0,0 +1,31 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER 1st CPU on Solaris using HOST-RESOURCES + +if test "x`uname -s`" != "xSunOS" ; then + SKIP "not running solaris" +fi + +SKIPIF NETSNMP_DISABLE_SNMPV1 +SKIPIFNOT USING_HOST_HR_DEVICE_MODULE + +# +# Begin test +# + +# standard V1 configuration: testcommunity +. ./Sv1config + +STARTAGENT + +# ask for the description of the first CPU in the system + +CAPTURE "snmpgetnext -On $SNMP_FLAGS -c testcommunity -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.25.3.2.1.3.767" + +CHECKORDIE ' = STRING: "*CPU ' + +STOPAGENT + +FINISHED diff --git a/testing/fulltests/default/T151solarishostdisk_simple b/testing/fulltests/default/T151solarishostdisk_simple new file mode 100644 index 0000000..77a117f --- /dev/null +++ b/testing/fulltests/default/T151solarishostdisk_simple @@ -0,0 +1,31 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER initial load device on Solaris using HOST-RESOURCES + +if test `uname -s` != "SunOS" ; then + # a bogus skip for !suns + SKIP "not running solaris" +fi + +SKIPIFNOT USING_HOST_HR_SYSTEM_MODULE +SKIPIF NETSNMP_DISABLE_SNMPV1 + +# +# Begin test +# + +# standard V1 configuration: testcommunity +. ./Sv1config + +STARTAGENT + +# ask for the index of the initial device (hrSystemInitialLoadDevice.0) +CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.25.1.3.0" + +STOPAGENT + +CHECKORDIE "^.1.3.6.1.2.1.25.1.3.0 = INTEGER:" + +FINISHED diff --git a/testing/fulltests/default/T152hostuptime_simple b/testing/fulltests/default/T152hostuptime_simple new file mode 100644 index 0000000..4d62b35 --- /dev/null +++ b/testing/fulltests/default/T152hostuptime_simple @@ -0,0 +1,27 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER uptime using HOST-RESOURCES + +SKIPIFNOT USING_HOST_HR_SYSTEM_MODULE + +SKIPIF NETSNMP_DISABLE_SNMPV1 + +# +# Begin test +# + +# standard V1 configuration: testcommunity +. ./Sv1config + +STARTAGENT + +CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.25.1.1.0" + +STOPAGENT + +CHECKORDIE "^.1.3.6.1.2.1.25.1.1.0 = Timeticks:" + +FINISHED + diff --git a/testing/fulltests/default/T153solarisswap_simple b/testing/fulltests/default/T153solarisswap_simple new file mode 100644 index 0000000..055dd45 --- /dev/null +++ b/testing/fulltests/default/T153solarisswap_simple @@ -0,0 +1,31 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER swap on Solaris using HOST-RESOURCES + +if test `uname -s` != "SunOS" ; then + SKIP "not running solaris" +fi + +ISDEFINED USING_HOST_HR_STORAGE_MODULE || ISDEFINED USING_HOST_HRH_STORAGE_MODULE || SKIP "Not using hrStorage" + +SKIPIF NETSNMP_DISABLE_SNMPV1 + +# +# Begin test +# + +# standard V1 configuration: testcommunity +. ./Sv1config + +STARTAGENT + +# ask for hrStorageSize.10 which reports overall swap size +CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.25.2.3.1.5.10" + +STOPAGENT + +CHECKORDIE "^.1.3.6.1.2.1.25.2.3.1.5.10 = INTEGER:" + +FINISHED diff --git a/testing/fulltests/default/T154dismanpingmib_simple b/testing/fulltests/default/T154dismanpingmib_simple new file mode 100644 index 0000000..45cffe0 --- /dev/null +++ b/testing/fulltests/default/T154dismanpingmib_simple @@ -0,0 +1,116 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER DISMAN PING MIB + +[ "$UID" = 0 ] || SKIP "Not permitted to create raw sockets" +SKIPIFNOT USING_DISMAN_PING_MIB_MODULE +SKIPIF NETSNMP_DISABLE_SNMPV1 + +# SNMPv2-TC +active=1 +createAndWait=5 +destroy=6 +# DISMAN-PING-MIB +DISMAN_PING_MIB=.1.3.6.1.2.1.80.1 +pingCtlEntry=${DISMAN_PING_MIB}.2.1 +pingCtlTargetAddressType=${pingCtlEntry}.3 +pingCtlTargetAddresTypeIpv4=1 +pingCtlTargetAddress=${pingCtlEntry}.4 +pingCtlProbeCount=${pingCtlEntry}.7 +pingCtlAdminStatus=${pingCtlEntry}.8 +pingCtlAdminStatusEnabled=1 +pingCtlFrequency=${pingCtlEntry}.10 +pingCtlDescr=${pingCtlEntry}.17 +pingCtlRowStatus=${pingCtlEntry}.23 +pingResultsEntry=${DISMAN_PING_MIB}.3.1 +pingResultsProbeResponses=${pingResultsEntry}.7 +pingResultsSentProbes=${pingResultsEntry}.8 +# Test configuration +TARGET_ADDRESS=127.0.0.1 +IDXPFX=8.78.101.116.45.83.78.77.80.6.84.49.53.52 # "Net-SNMP"."T154" +IDXS="${IDXPFX}.95.49 ${IDXPFX}.95.50 ${IDXPFX}.95.51" +PROBE_COUNT=5 + + +# +# Begin test +# + +# standard V1 configuration: testcommunity +snmp_write_access='all' +. ./Sv1config + +STARTAGENT + +for IDX in $IDXS; do + +CAPTURE "snmpset -One $SNMP_FLAGS -c testcommunity -v1 \ + $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT \ + $pingCtlRowStatus.$IDX i $destroy" + +CHECK "^$pingCtlRowStatus.$IDX = INTEGER: $destroy" + +CAPTURE "snmpset -One $SNMP_FLAGS -c testcommunity -v1 \ + $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT \ + $pingCtlRowStatus.$IDX i $createAndWait" + +CHECK "^$pingCtlRowStatus.$IDX = INTEGER: $createAndWait" + +CAPTURE "snmpset -One $SNMP_FLAGS -c testcommunity -v1 \ + $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT \ + $pingCtlTargetAddressType.$IDX i $pingCtlTargetAddresTypeIpv4 \ + $pingCtlTargetAddress.$IDX s $TARGET_ADDRESS \ + $pingCtlFrequency.$IDX u 1 \ + $pingCtlDescr.$IDX s ScriptGenerated \ + $pingCtlProbeCount.$IDX u ${PROBE_COUNT} \ + $pingCtlAdminStatus.$IDX i $pingCtlAdminStatusEnabled" + +CHECK "^$pingCtlAdminStatus.$IDX = INTEGER: $pingCtlAdminStatusEnabled" + +CAPTURE "snmpset -One $SNMP_FLAGS -c testcommunity -v1 \ + $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT \ + $pingCtlRowStatus.$IDX i $active" + +CHECK "^$pingCtlRowStatus.$IDX = INTEGER: $active" + +done + +sleep ${PROBE_COUNT} +sleep 2 + +for IDX in $IDXS; do + +CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v1 \ + $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT \ + $pingResultsSentProbes.$IDX" + +CHECK "^$pingResultsSentProbes.$IDX = Gauge32: ${PROBE_COUNT}" + +CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v1 \ + $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT \ + $pingResultsProbeResponses.$IDX" + +CHECK "^$pingResultsProbeResponses.$IDX = Gauge32: ${PROBE_COUNT}" + +done + +# Delete first row and leave the remaining rows in the table. + +for IDX in $IDXS; do + +CAPTURE "snmpset -One $SNMP_FLAGS -c testcommunity -v1 \ + $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT \ + $pingCtlRowStatus.$IDX i $destroy" + +CHECK "^$pingCtlRowStatus.$IDX = INTEGER: $destroy" + +break + +done + +STOPAGENT + + +FINISHED diff --git a/testing/fulltests/default/T160snmpnetstat_simple b/testing/fulltests/default/T160snmpnetstat_simple new file mode 100644 index 0000000..33159d2 --- /dev/null +++ b/testing/fulltests/default/T160snmpnetstat_simple @@ -0,0 +1,55 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +# snmpnetstat test only works with UDP or TCP +if [ "x$SNMP_TRANSPORT_SPEC" = "x" -o "x$SNMP_TRANSPORT_SPEC" = "xudp" ]; then + proto=udp + HEADER "if snmpnetstat finds the running agent in udpTable" + SKIPIFNOT USING_MIBII_UDPTABLE_MODULE +elif [ "x$SNMP_TRANSPORT_SPEC" = "xtcp" ]; then + proto=tcp + HEADER "if snmpnetstat finds the running agent in tcpTable" + SKIPIFNOT USING_MIBII_TCPTABLE_MODULE +else + HEADER "if snmpnetstat finds the running agent in udpTable/tcpTable" + SKIP +fi + +# on some systems the agent needs to be run as root to access udpTable/tcpTable +# - else force skip +case "x`uname -s`" in + xAIX) [ "x`id -u`" != "x0" ] && SKIP;; + xHP-UX) [ "x`id -u`" != "x0" ] && SKIP;; + xIRIX*) [ "x`id -u`" != "x0" ] && SKIP;; + xNetBSD) [ "x`id -u`" != "x0" ] && SKIP;; + xOpenBSD) [ "x`id -u`" != "x0" ] && SKIP;; + xOSF1) [ "x`id -u`" != "x0" ] && SKIP;; +esac + +SKIPIF NETSNMP_DISABLE_SNMPV2C + +# make sure snmpnetstat can be executed +SNMPNETSTAT="${SNMP_UPDIR}/apps/snmpnetstat/snmpnetstat" +[ -x "$SNMPNETSTAT" ] || SKIP + +snmp_version=v2c +. ./Sv2cconfig + +# +# Begin test +# + +STARTAGENT + +CAPTURE "$SNMPNETSTAT -Cn -Cp $proto -$snmp_version -c testcommunity $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT" +CHECKEXACT "127.0.0.1.$SNMP_SNMPD_PORT" +# multiple occurrences (especially in tcpTable) are fine +if [ "$snmp_last_test_result" != 0 ] ; then + return_value=0 +else + return_value=1 +fi + +STOPAGENT +FINISHED diff --git a/testing/fulltests/default/T200snmpv2cwalkall_simple b/testing/fulltests/default/T200snmpv2cwalkall_simple new file mode 100644 index 0000000..3bbc2ae --- /dev/null +++ b/testing/fulltests/default/T200snmpv2cwalkall_simple @@ -0,0 +1,38 @@ +#!/bin/sh + +. ../support/simple_eval_tools.sh + +HEADER "full snmpwalk (SNMPv2c) against agent (may take time)" + +if test `uname -s` = "HP-UX" ; then + if test `id -u` != "0" ; then + # The agent needs to be run as root - else force skip + SKIP + fi +fi + +SKIPIF NETSNMP_DISABLE_SNMPV2C + +# make sure snmpwalk can be executed +SNMPWALK="${SNMP_UPDIR}/apps/snmpwalk" +[ -x "$SNMPWALK" ] || SKIP + +snmp_version=v2c +. ./Sv2cconfig + +# +# Begin test +# + +# higher timeout/retry values for safety +TIMEOUT=10 +RETRY=5 + +STARTAGENT + +CAPTURE "$SNMPWALK $SNMP_FLAGS -$snmp_version -c testcommunity -t $TIMEOUT -r $RETRY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1" +ISDEFINED USING_WINEXTDLL_MODULE || ISDEFINED USING_ETHERLIKE_MIB_DOT3STATSTABLE_MODULE || CHECKANDDIE "= Wrong Type (should be " +CHECKORDIE "No more variables left in this MIB View" + +STOPAGENT +FINISHED |