summaryrefslogtreecommitdiff
path: root/perl/SNMP/t/notify.t
diff options
context:
space:
mode:
Diffstat (limited to 'perl/SNMP/t/notify.t')
-rw-r--r--perl/SNMP/t/notify.t98
1 files changed, 98 insertions, 0 deletions
diff --git a/perl/SNMP/t/notify.t b/perl/SNMP/t/notify.t
new file mode 100644
index 0000000..434237f
--- /dev/null
+++ b/perl/SNMP/t/notify.t
@@ -0,0 +1,98 @@
+#!./perl
+
+BEGIN {
+ unless(grep /blib/, @INC) {
+ chdir 't' if -d 't';
+ @INC = '../lib' if -d '../lib';
+ }
+ eval "use Cwd qw(abs_path)";
+ $ENV{'SNMPCONFPATH'} = 'nopath';
+ $ENV{'MIBDIRS'} = '+' . abs_path("../../mibs");
+}
+use Test;
+BEGIN { $n = 10; plan tests => $n }
+use SNMP;
+use vars qw($agent_port $comm $comm2 $trap_port $agent_host $sec_name $priv_pass $auth_pass $bad_name);
+require 't/startagent.pl';
+$SNMP::debugging = 0;
+
+my $res;
+my $enterprise = '.1.3.6.1.2.1.1.1.0';
+my $generic = 'specific';
+
+# V1 trap testing
+###################### 1 #############################
+# Fire up a trap session.
+my $s1 =
+ new SNMP::Session (DestHost=>$agent_host,Version=>1,Community=>$comm,RemotePort=>$trap_port);
+ok(defined($s1));
+
+########################## 2 ####################################
+# test v1 trap
+if (defined($s1)) {
+ $res = $s1->trap(enterprise => $enterprise, agent=>$agent_host, generic=>$generic,[[sysContact, 0, 'root@localhost'], [sysLocation, 0, 'here']] );
+}
+ok($res =~ /^0 but true/);
+
+########################### 3 #############################
+# test with wrong varbind
+undef $res;
+if (defined($s1)) {
+ $res = $s1->trap([[$bad_name, 0, 'root@localhost'], [sysLocation, 0, 'here']] );
+ #print("res is $res\n");
+}
+ok(!defined($res));
+#########################################################
+
+# V2 testing
+########################## 4 ############################
+# Fire up a v2 trap session.
+my $s2 =
+ new SNMP::Session (Version=>2, DestHost=>$agent_host,Community=>$comm2,RemotePort=>$trap_port);
+ok(defined($s2));
+######################### 5 ###########################
+# test v2 trap
+undef $res;
+if (defined($s2)) {
+ $res = $s2->trap(uptime=>200, trapoid=>'coldStart',[[sysContact, 0, 'root@localhost'], [sysLocation, 0, 'here']] );
+ #print("res is $res\n");
+}
+ok($res =~ /^0 but true/);
+########################## 6 ##########################
+# no trapoid and uptime given. Should take defaults...
+my $ret;
+if (defined($s2)) {
+ $ret = $s2->trap([[sysContact, 0, 'root@localhost'], [sysLocation, 0, 'here']] );
+ #print("res is $ret\n");
+}
+ok(defined($ret));
+
+#########################################################
+
+# v3 testing
+######################## 7 ############################
+# Fire up a v3 trap session.
+my $s3 = new SNMP::Session(Version=>3, DestHost=> $agent_host, RemotePort=>$trap_port, SecName => $sec_name);
+ok(defined($s3));
+
+######################## 8 ###########################
+if (defined($s3)) {
+ $res = $s3->inform(uptime=>111, trapoid=>'coldStart', [[sysContact, 0, 'root@localhost'], [sysLocation, 0, 'here']] );
+}
+ok($res =~ /^0 but true/);
+
+#################### 9 #####################
+# Fire up a v3 trap session.
+$s3 = new SNMP::Session(Version=>3, DestHost=> $agent_host, RemotePort=>$trap_port, SecName => $sec_name, SecLevel => authPriv, AuthPass => $auth_pass, PrivPass => $priv_pass);
+ok(defined($s3));
+
+######################## 10 ###########################
+undef $res;
+if (defined($s3)) {
+ $res = $s3->inform(uptime=>111, trapoid=>'coldStart', [[sysContact, 0, 'root@localhost'], [sysLocation, 0, 'here']] );
+ print "res = $res\n";
+}
+
+ok(defined($res) && ($res =~ /^0 but true/));
+
+snmptest_cleanup();