diff options
author | Thomas Guyot-Sionnest <dermoth@aei.ca> | 2009-07-31 02:45:30 -0400 |
---|---|---|
committer | Thomas Guyot-Sionnest <dermoth@aei.ca> | 2009-07-31 03:07:38 -0400 |
commit | 8a96ee4741633cf8e832903f7ce0f542a77dbed8 (patch) | |
tree | 5d237bbcca8f3c4007ead8d71170b8cd1c895408 /plugins/tests/check_snmp.t | |
parent | e0be2e6094a54771a7a310eea5853d2e05edf480 (diff) | |
download | monitoring-plugins-8a96ee4741633cf8e832903f7ce0f542a77dbed8.tar.gz |
Add tests using custom snmp agent
Only multi-line string test for now (regression test), counter rollover
tests planed with my snmp_counters_new branch.
NB: 64bit counters are broken in NetSNMP::agent from NetSNMP version 5.4.1
and lower, but might come in handy one day
Diffstat (limited to 'plugins/tests/check_snmp.t')
-rwxr-xr-x | plugins/tests/check_snmp.t | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/plugins/tests/check_snmp.t b/plugins/tests/check_snmp.t new file mode 100755 index 00000000..fcd15ea4 --- /dev/null +++ b/plugins/tests/check_snmp.t @@ -0,0 +1,56 @@ +#! /usr/bin/perl -w -I .. +# +# Test check_snmp by having an actual SNMP agent running +# + +use strict; +use Test::More; +use NPTest; +use FindBin qw($Bin); + +my $port_snmp = 16100 + int(rand(100)); +my $running = 1; + + +# Start up server +my @pids; +my $pid = fork(); +if ($pid) { + # Parent + push @pids, $pid; + # give our agent some time to startup + sleep(1); +} else { + # Child + #print "child\n"; + + print "Please contact SNMP at: $port_snmp\n"; + close(STDERR); # Coment out to debug snmpd problems (most errors sent there are OK) + exec("snmpd -c tests/conf/snmpd.conf -C -f -r udp:$port_snmp"); +} + +END { + foreach my $pid (@pids) { + if ($pid) { print "Killing $pid\n"; kill "INT", $pid } + } +}; + +if ($ARGV[0] && $ARGV[0] eq "-d") { + while (1) { + sleep 100; + } +} + +my $tests = 2; +if (-x "./check_snmp") { + plan tests => $tests; +} else { + plan skip_all => "No check_snmp compiled"; +} + +my $res; + +$res = NPTest->testCmd( "./check_snmp -H 127.0.0.1 -C public -p $port_snmp -o .1.3.6.1.4.1.8072.3.2.67.0"); +cmp_ok( $res->return_code, '==', 0, "Exit OK when querying a multi-line string" ); +like($res->output, '/^SNMP OK - /', "String contains SNMP OK"); + |