[Fuego] [PATCH v2] net-snmp: Add test cases for Net-SNMP.
Wang Mingyu <[email protected]>
| Newsgroups | dev.linux.lists.fuego |
|---|---|
| Message-ID | <[email protected]> |
Net-SNMP is a suite of applications used to implement SNMP. This test set is used to check applications of SNMP to monitor the health and welfare of network/computer/device equipment. Signed-off-by: Wang Mingyu <[email protected]> --- scripts/fuego_board_function_lib.sh | 13 ++++ tests/Functional.net-snmp/data/bind9/hosts | 3 + .../data/net-snmp/snmpd.conf | 22 +++++++ .../data/net-snmp/snmptrapd.conf | 1 + tests/Functional.net-snmp/fuego_test.sh | 27 ++++++++ tests/Functional.net-snmp/net-snmp_test.sh | 7 +++ tests/Functional.net-snmp/spec.json | 6 ++ tests/Functional.net-snmp/test.yaml | 23 +++++++ tests/Functional.net-snmp/tests/snmpd_ps.sh | 52 +++++++++++++++ .../Functional.net-snmp/tests/snmpd_snmpdf.sh | 43 +++++++++++++ .../tests/snmpd_snmpget.sh | 43 +++++++++++++ .../tests/snmpd_snmpgetnext.sh | 43 +++++++++++++ .../tests/snmpd_snmpset.sh | 43 +++++++++++++ .../tests/snmpd_snmptranslate.sh | 43 +++++++++++++ .../tests/snmpd_snmpwalk.sh | 43 +++++++++++++ .../Functional.net-snmp/tests/snmpd_syslog.sh | 55 ++++++++++++++++ .../tests/snmpd_syslog_ip.sh | 63 +++++++++++++++++++ .../tests/snmptrapd_coldstart.sh | 60 ++++++++++++++++++ .../Functional.net-snmp/tests/snmptrapd_ps.sh | 53 ++++++++++++++++ .../tests/snmptrapd_syslog.sh | 54 ++++++++++++++++ .../tests/snmptrapd_warmstart.sh | 61 ++++++++++++++++++ 21 files changed, 758 insertions(+) create mode 100644 tests/Functional.net-snmp/data/bind9/hosts create mode 100644 tests/Functional.net-snmp/data/net-snmp/snmpd.conf create mode 100644 tests/Functional.net-snmp/data/net-snmp/snmptrapd.conf create mode 100644 tests/Functional.net-snmp/fuego_test.sh create mode 100755 tests/Functional.net-snmp/net-snmp_test.sh create mode 100644 tests/Functional.net-snmp/spec.json create mode 100644 tests/Functional.net-snmp/test.yaml create mode 100644 tests/Functional.net-snmp/tests/snmpd_ps.sh create mode 100644 tests/Functional.net-snmp/tests/snmpd_snmpdf.sh create mode 100644 tests/Functional.net-snmp/tests/snmpd_snmpget.sh create mode 100644 tests/Functional.net-snmp/tests/snmpd_snmpgetnext.sh create mode 100644 tests/Functional.net-snmp/tests/snmpd_snmpset.sh create mode 100644 tests/Functional.net-snmp/tests/snmpd_snmptranslate.sh create mode 100644 tests/Functional.net-snmp/tests/snmpd_snmpwalk.sh create mode 100644 tests/Functional.net-snmp/tests/snmpd_syslog.sh create mode 100644 tests/Functional.net-snmp/tests/snmpd_syslog_ip.sh create mode 100644 tests/Functional.net-snmp/tests/snmptrapd_coldstart.sh create mode 100644 tests/Functional.net-snmp/tests/snmptrapd_ps.sh create mode 100644 tests/Functional.net-snmp/tests/snmptrapd_syslog.sh create mode 100644 tests/Functional.net-snmp/tests/snmptrapd_warmstart.sh diff --git a/scripts/fuego_board_function_lib.sh b/scripts/fuego_board_function_lib.sh index 1b8699a..a6cd842 100644 --- a/scripts/fuego_board_function_lib.sh +++ b/scripts/fuego_board_function_lib.sh @@ -87,3 +87,16 @@ get_service_status() { fi echo $service_status } + +# get_service_logfile: +# get logfile of service +# returns: logfile of service +get_service_logfile() { + if [ "$init_manager" = "systemd" ] + then + service_logfile="/var/log/syslog" + else + service_logfile="/var/log/messages" + fi + echo $service_logfile +} diff --git a/tests/Functional.net-snmp/data/bind9/hosts b/tests/Functional.net-snmp/data/bind9/hosts new file mode 100644 index 0000000..c7b9f21 --- /dev/null +++ b/tests/Functional.net-snmp/data/bind9/hosts @@ -0,0 +1,3 @@ +# /etc/hosts test +# +127.0.0.1 localhost.localdomain localhost diff --git a/tests/Functional.net-snmp/data/net-snmp/snmpd.conf b/tests/Functional.net-snmp/data/net-snmp/snmpd.conf new file mode 100644 index 0000000..01c40a2 --- /dev/null +++ b/tests/Functional.net-snmp/data/net-snmp/snmpd.conf @@ -0,0 +1,22 @@ +# added community +# sec.name source community +com2sec xfile localhost RWIINCOM + +# map the security name into a group name +# groupName securityModel securityName +group RWACCESS v1 xfile +group RWACCESS v2c xfile +group RWACCESS usm xfile +group ROACCESS v1 yfile +group ROACCESS v2c yfile +group ROACCESS usm yfile + +# create view to let the group have rights to +view iin_all included .1 80 +view iin_ucdmib included .1.3.6.1.4.1.2021 fe +view iin_mib2 included .1.3.6.1.2.1 fc + +# grant the group permission to the systemview view +# group context sec.model sec.level prefix read write notif +access RWACCESS "" any noauth exact iin_all iin_all none +access ROACCESS "" any noauth exact iin_all none none diff --git a/tests/Functional.net-snmp/data/net-snmp/snmptrapd.conf b/tests/Functional.net-snmp/data/net-snmp/snmptrapd.conf new file mode 100644 index 0000000..2570e96 --- /dev/null +++ b/tests/Functional.net-snmp/data/net-snmp/snmptrapd.conf @@ -0,0 +1 @@ +disableAuthorization yes diff --git a/tests/Functional.net-snmp/fuego_test.sh b/tests/Functional.net-snmp/fuego_test.sh new file mode 100644 index 0000000..b5f460c --- /dev/null +++ b/tests/Functional.net-snmp/fuego_test.sh @@ -0,0 +1,27 @@ +NEED_ROOT=1 + +function test_pre_check { + assert_has_program snmpget + assert_has_program snmpgetnext + assert_has_program snmpset + assert_has_program snmpwalk + assert_has_program snmptrap + assert_has_program snmptranslate +} + +function test_deploy { + put $TEST_HOME/net-snmp_test.sh $BOARD_TESTDIR/fuego.$TESTDIR/ + put $FUEGO_CORE/scripts/fuego_board_function_lib.sh $BOARD_TESTDIR/fuego.$TESTDIR + put -r $TEST_HOME/tests $BOARD_TESTDIR/fuego.$TESTDIR/ + put -r $TEST_HOME/data $BOARD_TESTDIR/fuego.$TESTDIR/ +} + +function test_run { + report "cd $BOARD_TESTDIR/fuego.$TESTDIR;\ + export remotehost=$IPADDR;\ + ./net-snmp_test.sh" +} + +function test_processing { + log_compare "$TESTDIR" "0" "TEST-FAIL" "n" +} diff --git a/tests/Functional.net-snmp/net-snmp_test.sh b/tests/Functional.net-snmp/net-snmp_test.sh new file mode 100755 index 0000000..95c34db --- /dev/null +++ b/tests/Functional.net-snmp/net-snmp_test.sh @@ -0,0 +1,7 @@ +#!/bin/sh +. ./fuego_board_function_lib.sh +set_init_manager + +for i in tests/*.sh; do + source $i +done diff --git a/tests/Functional.net-snmp/spec.json b/tests/Functional.net-snmp/spec.json new file mode 100644 index 0000000..ad97ce9 --- /dev/null +++ b/tests/Functional.net-snmp/spec.json @@ -0,0 +1,6 @@ +{ + "testName": "Functional.net-snmp", + "specs": { + "default": {} + } +} diff --git a/tests/Functional.net-snmp/test.yaml b/tests/Functional.net-snmp/test.yaml new file mode 100644 index 0000000..35f19dd --- /dev/null +++ b/tests/Functional.net-snmp/test.yaml @@ -0,0 +1,23 @@ +fuego_package_version: 1 +name: Functional.net-snmp +description: | + Simple Network Management Protocol (SNMP) is a widely used protocol for monitoring the health and welfare of network equipment (eg. routers), + computer equipment and even devices like UPSs. + This is a simple test to check the service and SNMP-capable device. +license: BSD-3-Clause +author: Wang Mingyu <[email protected]> +maintainer: Wang Mingyu <[email protected]> +version: 1.00 +fuego_release: 1 +type: Functional +tags: ['net-snmp'] +params: + IPADDR: + description: the IP address of your target board - Defined in board file +data_files: + - net-snmp_test.sh + - fuego_test.sh + - spec.json + - test.yaml + - data + - tests diff --git a/tests/Functional.net-snmp/tests/snmpd_ps.sh b/tests/Functional.net-snmp/tests/snmpd_ps.sh new file mode 100644 index 0000000..3ffbfb2 --- /dev/null +++ b/tests/Functional.net-snmp/tests/snmpd_ps.sh @@ -0,0 +1,52 @@ +#!/bin/sh + +# In the target start snmpd, and confirm the process condition by command ps. +# check the keyword "snmpd". + +test="snmpd_ps" + +snmpd_status=$(get_service_status snmpd) + +exec_service_on_target snmpd stop + +if exec_service_on_target snmpd start +then + echo " -> start of snmpd succeeded." +else + echo " -> start of snmpd failed." + echo " -> $test: TEST-FAIL" + exit +fi + +if ps aux | grep "[/]usr/sbin/snmpd" +then + echo " -> get the pid of snmpd." +else + echo " -> can't get the pid of snmpd." + echo " -> $test: TEST-FAIL" + if [ "$snmpd_status" = "inactive" ] + then + exec_service_on_target snmpd stop + fi + exit +fi + +if exec_service_on_target snmpd stop +then + echo " -> stop of snmpd succeeded." +else + echo " -> stop of snmpd failed." + echo " -> $test: TEST-FAIL" + exit +fi + +if ps aux | grep "[/]usr/sbin/snmpd" +then + echo " -> $test: TEST-FAIL" +else + echo " -> $test: TEST-PASS" +fi +if [ "$snmpd_status" = "active" -o "$snmpd_status" = "unknown" ] +then + exec_service_on_target snmpd start +fi diff --git a/tests/Functional.net-snmp/tests/snmpd_snmpdf.sh b/tests/Functional.net-snmp/tests/snmpd_snmpdf.sh new file mode 100644 index 0000000..49604f2 --- /dev/null +++ b/tests/Functional.net-snmp/tests/snmpd_snmpdf.sh @@ -0,0 +1,43 @@ +#!/bin/sh + +# In the target start service snmpd. +# Run command snmpdf and check the keyword "Memory Buffers". + +test="snmpdf" + +snmpd_status=$(get_service_status snmpd) + +exec_service_on_target snmpd stop + +mv /etc/hosts /etc/hosts_bak +cp data/bind9/hosts /etc/hosts +mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf_bak +cp data/net-snmp/snmpd.conf /etc/snmp/snmpd.conf + +restore_target() { + mv /etc/hosts_bak /etc/hosts + mv /etc/snmp/snmpd.conf_bak /etc/snmp/snmpd.conf +} + +if exec_service_on_target snmpd start +then + echo " -> start of snmpd succeeded." +else + echo " -> start of snmpd failed." + echo " -> $test: TEST-FAIL" + restore_target + exit +fi + +if snmpdf -v1 -c RWIINCOM localhost | grep "Physical memory" +then + echo " -> $test: TEST-PASS" +else + echo " -> $test: TEST-FAIL" +fi + +if [ "$snmpd_status" = "inactive" ] +then + exec_service_on_target snmpd stop +fi +restore_target diff --git a/tests/Functional.net-snmp/tests/snmpd_snmpget.sh b/tests/Functional.net-snmp/tests/snmpd_snmpget.sh new file mode 100644 index 0000000..6ead310 --- /dev/null +++ b/tests/Functional.net-snmp/tests/snmpd_snmpget.sh @@ -0,0 +1,43 @@ +#!/bin/sh + +# In the target start snmpd. +# Check the keyword "Linux". + +test="snmpget" + +snmpd_status=$(get_service_status snmpd) + +exec_service_on_target snmpd stop + +mv /etc/hosts /etc/hosts_bak +cp data/bind9/hosts /etc/hosts +mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf_bak +cp data/net-snmp/snmpd.conf /etc/snmp/snmpd.conf + +restore_target() { + mv /etc/hosts_bak /etc/hosts + mv /etc/snmp/snmpd.conf_bak /etc/snmp/snmpd.conf +} + +if exec_service_on_target snmpd start +then + echo " -> start of snmpd succeeded." +else + echo " -> start of snmpd failed." + echo " -> $test: TEST-FAIL" + restore_target + exit +fi + +if snmpget -v1 -c RWIINCOM -M /usr/share/snmp/mibs localhost system.sysDescr.0 | grep "Linux" +then + echo " -> $test: TEST-PASS" +else + echo " -> $test: TEST-FAIL" +fi + +if [ "$snmpd_status" = "inactive" ] +then + exec_service_on_target snmpd stop +fi +restore_target diff --git a/tests/Functional.net-snmp/tests/snmpd_snmpgetnext.sh b/tests/Functional.net-snmp/tests/snmpd_snmpgetnext.sh new file mode 100644 index 0000000..81c8aae --- /dev/null +++ b/tests/Functional.net-snmp/tests/snmpd_snmpgetnext.sh @@ -0,0 +1,43 @@ +#!/bin/sh + +# In the target start snmpd. +# Check the keyword "sysDescr". + +test="snmpgetnext" + +snmpd_status=$(get_service_status snmpd) + +exec_service_on_target snmpd stop + +mv /etc/hosts /etc/hosts_bak +cp data/bind9/hosts /etc/hosts +mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf_bak +cp data/net-snmp/snmpd.conf /etc/snmp/snmpd.conf + +restore_target() { + mv /etc/hosts_bak /etc/hosts + mv /etc/snmp/snmpd.conf_bak /etc/snmp/snmpd.conf +} + +if exec_service_on_target snmpd start +then + echo " -> start of snmpd succeeded." +else + echo " -> start of snmpd failed." + echo " -> $test: TEST-FAIL" + restore_target + exit +fi + +if snmpgetnext -v1 -c RWIINCOM -M /usr/share/snmp/mibs localhost system | grep "sysDescr" +then + echo " -> $test: TEST-PASS" +else + echo " -> $test: TEST-FAIL" +fi + +if [ "$snmpd_status" = "inactive" ] +then + exec_service_on_target snmpd stop +fi +restore_target diff --git a/tests/Functional.net-snmp/tests/snmpd_snmpset.sh b/tests/Functional.net-snmp/tests/snmpd_snmpset.sh new file mode 100644 index 0000000..fef07b9 --- /dev/null +++ b/tests/Functional.net-snmp/tests/snmpd_snmpset.sh @@ -0,0 +1,43 @@ +#!/bin/sh + +# In the target start snmpd. +# Check the keyword "INTEGER: 1". + +test="snmpset" + +snmpd_status=$(get_service_status snmpd) + +exec_service_on_target snmpd stop + +mv /etc/hosts /etc/hosts_bak +cp data/bind9/hosts /etc/hosts +mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf_bak +cp data/net-snmp/snmpd.conf /etc/snmp/snmpd.conf + +restore_target() { + mv /etc/hosts_bak /etc/hosts + mv /etc/snmp/snmpd.conf_bak /etc/snmp/snmpd.conf +} + +if exec_service_on_target snmpd start +then + echo " -> start of snmpd succeeded." +else + echo " -> start of snmpd failed." + echo " -> $test: TEST-FAIL" + restore_target + exit +fi + +if snmpset -v1 -c RWIINCOM -M /usr/share/snmp/mibs localhost versionUpdateConfig.0 i 1 | grep "INTEGER: 1" +then + echo " -> $test: TEST-PASS" +else + echo " -> $test: TEST-FAIL" +fi + +if [ "$snmpd_status" = "inactive" ] +then + exec_service_on_target snmpd stop +fi +restore_target diff --git a/tests/Functional.net-snmp/tests/snmpd_snmptranslate.sh b/tests/Functional.net-snmp/tests/snmpd_snmptranslate.sh new file mode 100644 index 0000000..f2f56cb --- /dev/null +++ b/tests/Functional.net-snmp/tests/snmpd_snmptranslate.sh @@ -0,0 +1,43 @@ +#!/bin/sh + +# In the target start snmpd. +# Translate MIB OID names between numeric and textual forms. + +test="snmptranslate" + +snmpd_status=$(get_service_status snmpd) + +exec_service_on_target snmpd stop + +mv /etc/hosts /etc/hosts_bak +cp data/bind9/hosts /etc/hosts +mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf_bak +cp data/net-snmp/snmpd.conf /etc/snmp/snmpd.conf + +restore_target() { + mv /etc/hosts_bak /etc/hosts + mv /etc/snmp/snmpd.conf_bak /etc/snmp/snmpd.conf +} + +if exec_service_on_target snmpd start +then + echo " -> start of snmpd succeeded." +else + echo " -> start of snmpd failed." + echo " -> $test: TEST-FAIL" + restore_target + exit +fi + +if snmptranslate -On -IR sysDescr +then + echo " -> $test: TEST-PASS" +else + echo " -> $test: TEST-FAIL" +fi + +if [ "$snmpd_status" = "inactive" ] +then + exec_service_on_target snmpd stop +fi +restore_target diff --git a/tests/Functional.net-snmp/tests/snmpd_snmpwalk.sh b/tests/Functional.net-snmp/tests/snmpd_snmpwalk.sh new file mode 100644 index 0000000..be1c8b5 --- /dev/null +++ b/tests/Functional.net-snmp/tests/snmpd_snmpwalk.sh @@ -0,0 +1,43 @@ +#!/bin/sh + +# In the target start snmpd. +# Check the IP address of host. + +test="snmpwalk" + +snmpd_status=$(get_service_status snmpd) + +exec_service_on_target snmpd stop + +mv /etc/hosts /etc/hosts_bak +cp data/bind9/hosts /etc/hosts +mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf_bak +cp data/net-snmp/snmpd.conf /etc/snmp/snmpd.conf + +restore_target() { + mv /etc/hosts_bak /etc/hosts + mv /etc/snmp/snmpd.conf_bak /etc/snmp/snmpd.conf +} + +if exec_service_on_target snmpd start +then + echo " -> start of snmpd succeeded." +else + echo " -> start of snmpd failed." + echo " -> $test: TEST-FAIL" + restore_target + exit +fi + +if snmpwalk -v1 -c RWIINCOM -M /usr/share/snmp/mibs localhost ip | grep "$remotehost" +then + echo " -> $test: TEST-PASS" +else + echo " -> $test: TEST-FAIL" +fi + +if [ "$snmpd_status" = "inactive" ] +then + exec_service_on_target snmpd stop +fi +restore_target diff --git a/tests/Functional.net-snmp/tests/snmpd_syslog.sh b/tests/Functional.net-snmp/tests/snmpd_syslog.sh new file mode 100644 index 0000000..6d2c38a --- /dev/null +++ b/tests/Functional.net-snmp/tests/snmpd_syslog.sh @@ -0,0 +1,55 @@ +#!/bin/sh + +# In the target start snmpd. +# Check the log of snmpd. + +test="snmpd_syslog" + +logger_service=$(detect_logger_service) + +snmpd_status=$(get_service_status snmpd) +snmpd_logfile=$(get_service_logfile) + +exec_service_on_target snmpd stop +exec_service_on_target $logger_service stop + +if [ -f $snmpd_logfile ] +then + mv $snmpd_logfile $snmpd_logfile"_bak" +fi + +restore_target() { + if [ -f $snmpd_logfile"_bak" ] + then + mv $snmpd_logfile"_bak" $snmpd_logfile + fi +} + +exec_service_on_target $logger_service restart + +sleep 2 + +if exec_service_on_target snmpd start +then + echo " -> start of snmpd succeeded." +else + echo " -> start of snmpd failed." + echo " -> $test: TEST-FAIL" + restore_target + exit +fi + +sleep 3 + +if cat $snmpd_logfile | grep "snmpd" +then + echo " -> $test: TEST-PASS" +else + echo " -> $test: TEST-FAIL" +fi + +if [ "$snmpd_status" = "inactive" ] +then + exec_service_on_target snmpd stop +fi +restore_target diff --git a/tests/Functional.net-snmp/tests/snmpd_syslog_ip.sh b/tests/Functional.net-snmp/tests/snmpd_syslog_ip.sh new file mode 100644 index 0000000..0b9b7e6 --- /dev/null +++ b/tests/Functional.net-snmp/tests/snmpd_syslog_ip.sh @@ -0,0 +1,63 @@ +#!/bin/sh + +# In the target start snmpd. +# Check the log of IP address. + +test="snmpd_syslog_ip" + +logger_service=$(detect_logger_service) + +snmpd_status=$(get_service_status snmpd) +snmpd_logfile=$(get_service_logfile) +exec_service_on_target snmpd stop +exec_service_on_target $logger_service stop + +if [ -f $snmpd_logfile ] +then + mv $snmpd_logfile $snmpd_logfile"_bak" +fi + +mv /etc/hosts /etc/hosts_bak +cp data/bind9/hosts /etc/hosts +mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf_bak +cp data/net-snmp/snmpd.conf /etc/snmp/snmpd.conf + +restore_target() { + mv /etc/hosts_bak /etc/hosts + mv /etc/snmp/snmpd.conf_bak /etc/snmp/snmpd.conf + if [ -f $snmpd_logfile"_bak" ] + then + mv $snmpd_logfile"_bak" $snmpd_logfile + fi +} + +exec_service_on_target $logger_service restart + +sleep 2 + +if exec_service_on_target snmpd start +then + echo " -> start of snmpd succeeded." +else + echo " -> start of snmpd failed." + echo " -> $test: TEST-FAIL" + restore_target + exit +fi + +snmpget -v1 -c RWIINCOM -M /usr/share/snmp/mibs localhost system.sysDescr.0 + +sleep 3 + +if cat $snmpd_logfile | grep "127.0.0.1" +then + echo " -> $test: TEST-PASS" +else + echo " -> $test: TEST-FAIL" +fi + +if [ "$snmpd_status" = "inactive" ] +then + exec_service_on_target snmpd stop +fi +restore_target diff --git a/tests/Functional.net-snmp/tests/snmptrapd_coldstart.sh b/tests/Functional.net-snmp/tests/snmptrapd_coldstart.sh new file mode 100644 index 0000000..914bc06 --- /dev/null +++ b/tests/Functional.net-snmp/tests/snmptrapd_coldstart.sh @@ -0,0 +1,60 @@ +#!/bin/sh + +# In the target start snmptrapd, and check the syslog. +# check the keyword "SNMPv2-MIB::coldStart". + +test="snmptrapd_coldstart.sh" + +snmptrapd_status=$(get_service_status snmptrapd) +snmptrapd_logfile=$(get_service_logfile) +logger_service=$(detect_logger_service) + +exec_service_on_target snmptrapd stop +exec_service_on_target $logger_service stop + +mv /etc/snmp/snmptrapd.conf /etc/snmp/snmptrapd.conf_bak +cp data/net-snmp/snmptrapd.conf /etc/snmp/snmptrapd.conf + +restore_target() { + mv /etc/snmp/snmptrapd.conf_bak /etc/snmp/snmptrapd.conf + if [ -f $snmptrapd_logfile"_bak" ] + then + mv $snmptrapd_logfile"_bak" $snmptrapd_logfile + fi +} + +if [ -f $snmptrapd_logfile ] +then + mv $snmptrapd_logfile $snmptrapd_logfile"_bak" +fi + +exec_service_on_target $logger_service restart + +sleep 2 + +if exec_service_on_target snmptrapd start +then + echo " -> start of snmptrapd succeeded." +else + echo " -> start of snmptrapd failed." + echo " -> $test: TEST-FAIL" + restore_target + exit +fi + +snmptrap -v2c -c "" -M /usr/share/snmp/mibs localhost "" SNMPv2-MIB::coldStart + +sleep 3 + +if cat $snmptrapd_logfile | grep "SNMPv2-MIB::coldStart" +then + echo " -> $test: TEST-PASS" +else + echo " -> $test: TEST-FAIL" +fi + +if [ "$snmptrapd_status" = "inactive" ] +then + exec_service_on_target snmptrapd stop +fi +restore_target diff --git a/tests/Functional.net-snmp/tests/snmptrapd_ps.sh b/tests/Functional.net-snmp/tests/snmptrapd_ps.sh new file mode 100644 index 0000000..f230f68 --- /dev/null +++ b/tests/Functional.net-snmp/tests/snmptrapd_ps.sh @@ -0,0 +1,53 @@ +#!/bin/sh + +# In the target start snmptrapd, and confirm the process condition by command ps. +# check the keyword "snmptrapd". + +test="snmptrapd_ps" + +snmptrapd_status=$(get_service_status snmptrapd) +exec_service_on_target snmptrapd stop + +if exec_service_on_target snmptrapd start +then + echo " -> start of snmptrapd succeeded." +else + echo " -> start of snmptrapd failed." + echo " -> $test: TEST-FAIL" + exit +fi + +if ps aux | grep "[/]usr/sbin/snmptrapd" +then + echo " -> get the pid of snmptrapd." +else + echo " -> can't get the pid of snmptrapd." + echo " -> $test: TEST-FAIL" + + if [ "$snmptrapd_status" = "inactive" ] + then + exec_service_on_target snmptrapd stop + fi + exit +fi + +if exec_service_on_target snmptrapd stop +then + echo " -> stop of snmptrapd succeeded." +else + echo " -> stop of snmptrapd failed." + echo " -> $test: TEST-FAIL" + exit +fi + +if ps aux | grep "[/]usr/sbin/snmptrapd" +then + echo " -> $test: TEST-FAIL" +else + echo " -> $test: TEST-PASS" +fi + +if [ "$snmptrapd_status" = "active" -o "$snmptrapd_status" = "unknown" ] +then + exec_service_on_target snmptrapd start +fi diff --git a/tests/Functional.net-snmp/tests/snmptrapd_syslog.sh b/tests/Functional.net-snmp/tests/snmptrapd_syslog.sh new file mode 100644 index 0000000..8882416 --- /dev/null +++ b/tests/Functional.net-snmp/tests/snmptrapd_syslog.sh @@ -0,0 +1,54 @@ +#!/bin/sh + +# In the target start snmptrapd, and check if the $snmptrapd_logfile +# check the keyword "snmptrapd". + +test="snmptrapd_syslog" + +logger_service=$(detect_logger_service) + +snmptrapd_status=$(get_service_status snmptrapd) +snmptrapd_logfile=$(get_service_logfile) +exec_service_on_target snmptrapd stop +exec_service_on_target $logger_service stop + +if [ -f $snmptrapd_logfile ] +then + mv $snmptrapd_logfile $snmptrapd_logfile"_bak" +fi + +restore_target() { + if [ -f $snmptrapd_logfile"_bak" ] + then + mv $snmptrapd_logfile"_bak" $snmptrapd_logfile + fi +} + +exec_service_on_target $logger_service restart + +sleep 3 + +if exec_service_on_target snmptrapd start +then + echo " -> start of snmptrapd succeeded." +else + echo " -> start of snmptrapd failed." + echo " -> $test: TEST-FAIL" + restore_target + exit +fi + +sleep 3 + +if cat $snmptrapd_logfile | grep "snmptrapd" +then + echo " -> $test: TEST-PASS" +else + echo " -> $test: TEST-FAIL" +fi + +if [ "$snmptrapd_status" = "inactive" ] +then + exec_service_on_target snmptrapd stop +fi +restore_target diff --git a/tests/Functional.net-snmp/tests/snmptrapd_warmstart.sh b/tests/Functional.net-snmp/tests/snmptrapd_warmstart.sh new file mode 100644 index 0000000..1cc9ffe --- /dev/null +++ b/tests/Functional.net-snmp/tests/snmptrapd_warmstart.sh @@ -0,0 +1,61 @@ +#!/bin/sh + +# In the target start snmptrapd, and check the syslog. +# check the keyword "SNMPv2-MIB::warmStart". + +test="snmptrapd_warmstart" + +snmptrapd_status=$(get_service_status snmptrapd) +snmptrapd_logfile=$(get_service_logfile) +logger_service=$(detect_logger_service) + +exec_service_on_target snmptrapd stop +exec_service_on_target $logger_service stop + +mv /etc/snmp/snmptrapd.conf /etc/snmp/snmptrapd.conf_bak +cp data/net-snmp/snmptrapd.conf /etc/snmp/snmptrapd.conf + +restore_target() { + mv /etc/snmp/snmptrapd.conf_bak /etc/snmp/snmptrapd.conf + if [ -f $snmptrapd_logfile"_bak" ] + then + mv $snmptrapd_logfile"_bak" $snmptrapd_logfile + fi +} + + +if [ -f $snmptrapd_logfile ] +then + mv $snmptrapd_logfile $snmptrapd_logfile"_bak" +fi + +exec_service_on_target $logger_service restart + +sleep 2 + +if exec_service_on_target snmptrapd start +then + echo " -> start of snmptrapd succeeded." +else + echo " -> start of snmptrapd failed." + echo " -> $test: TEST-FAIL" + restore_target + exit +fi + +snmptrap -v2c -c "" -M /usr/share/snmp/mibs localhost "" SNMPv2-MIB::warmStart + +sleep 3 + +if cat $snmptrapd_logfile | grep "SNMPv2-MIB::warmStart" +then + echo " -> $test: TEST-PASS" +else + echo " -> $test: TEST-FAIL" +fi + +if [ "$snmptrapd_status" = "inactive" ] +then + exec_service_on_target snmptrapd stop +fi +restore_target -- 2.17.1