summaryrefslogtreecommitdiff
path: root/perl/OID/test.pl
diff options
context:
space:
mode:
Diffstat (limited to 'perl/OID/test.pl')
-rw-r--r--perl/OID/test.pl137
1 files changed, 137 insertions, 0 deletions
diff --git a/perl/OID/test.pl b/perl/OID/test.pl
new file mode 100644
index 0000000..aee410c
--- /dev/null
+++ b/perl/OID/test.pl
@@ -0,0 +1,137 @@
+# Before `make install' is performed this script should be runnable with
+# `make test'. After `make install' it should work as `perl test.pl'
+
+#########################
+
+# change 'tests => 1' to 'tests => last_test_to_print';
+
+use Test;
+BEGIN { eval "use Cwd qw(abs_path)"; plan tests => 38 ; $ENV{'SNMPCONFPATH'} = 'nopath' ; $ENV{'MIBDIRS'} = '+' . abs_path("../../mibs"); };
+use NetSNMP::OID;
+
+ok(1); # If we made it this far, we're ok.
+
+#########################
+
+# Insert your test code below, the Test module is use()ed here so read
+# its man page ( perldoc Test ) for help writing this test script.
+
+my $oid = new NetSNMP::OID(".1.3.6.1");
+ok(ref($oid) eq "NetSNMP::OID");
+ok(ref($oid->{oidptr}) eq "netsnmp_oidPtr");
+#print STDERR ref($oid),"\n";
+
+my $tostring = "$oid";
+#print STDERR "$tostring\n";
+ok($tostring eq "internet");
+
+my $oid2 = new NetSNMP::OID(".1.3.6.1.2");
+$tostring = "$oid2";
+#print STDERR "$tostring\n";
+ok($tostring eq "mgmt");
+
+my $oid3 = new NetSNMP::OID(".1.3.6.1");
+
+my $val = NetSNMP::OID::snmp_oid_compare($oid, $oid2);
+#print STDERR "compare result: $val\n";
+ok($val == -1);
+
+$val = $oid2->snmp_oid_compare($oid);
+#print STDERR "compare result: $val\n";
+ok($val == 1);
+
+$val = NetSNMP::OID::compare($oid, $oid);
+#print STDERR "compare result: $val\n";
+ok($val == 0);
+
+$val = $oid->compare($oid3);
+#print STDERR "compare result: $val\n";
+ok($val == 0);
+
+ok(($oid <=> $oid2) == -1);
+ok(($oid2 <=> $oid) == 1);
+ok(($oid <=> $oid3) == 0);
+
+ok($oid < $oid2);
+ok($oid <= $oid2);
+ok($oid2 > $oid);
+ok($oid2 >= $oid);
+ok($oid == $oid3);
+ok($oid <= $oid3);
+ok($oid >= $oid3);
+
+ok(new NetSNMP::OID('system') < new NetSNMP::OID('interfaces'));
+ok(new NetSNMP::OID('interfaces') > new NetSNMP::OID('system'));
+ok(new NetSNMP::OID('sysORTable') > new NetSNMP::OID('system'));
+
+my @a = $oid->to_array();
+ok($a[0] == 1 && $a[1] == 3 && $a[2] == 6 && $a[3] == 1 && $#a == 3);
+
+$oid->append(".1.2.3");
+ok("$oid" eq "directory.2.3");
+
+$oidmore = $oid + ".8.9.10";
+ok($oidmore == new NetSNMP::OID("directory.2.3.8.9.10"));
+ok("$oid" eq "directory.2.3");
+ok(ref($oidmore) eq "NetSNMP::OID");
+
+# += should work
+$oidmore += ".11";
+ok($oidmore == new NetSNMP::OID("directory.2.3.8.9.10.11"));
+
+$oidstr = $oidmore + "\"wes\"";
+ok($oidstr == new NetSNMP::OID("directory.2.3.8.9.10.11.3.119.101.115"));
+
+$oidstr = $oidmore + "\'wes\'";
+ok($oidstr == new NetSNMP::OID("directory.2.3.8.9.10.11.119.101.115"));
+
+# just make sure you can do it twice (ie, not modify the original)
+$oidstr = $oidmore + "\'wes\'";
+ok($oidstr == new NetSNMP::OID("directory.2.3.8.9.10.11.119.101.115"));
+
+$oidstr = $oidmore + "internet";
+ok($oidstr == new NetSNMP::OID("directory.2.3.8.9.10.11.1.3.6.1"));
+
+$oidstr = $oidmore + "999";
+ok($oidstr == new NetSNMP::OID("directory.2.3.8.9.10.11.999"));
+
+$oidstr = $oidmore + (new NetSNMP::OID(".1.3.6.1"));
+ok($oidstr == new NetSNMP::OID("directory.2.3.8.9.10.11.1.3.6.1"));
+
+$oid = new NetSNMP::OID("nosuchoidexists");
+ok(ref($oid) ne "NetSNMP::OID");
+
+ok($oidstr->length() == 15);
+
+# multiple encoded values
+my $newtest = new NetSNMP::OID ("nsModuleName.5.109.121.99.116.120.2.1.3.14");
+
+if ($newtest) {
+ my $arrayback = $newtest->get_indexes();
+
+ ok($#$arrayback == 2 &&
+ $arrayback->[0] eq 'myctx' &&
+ $arrayback->[1] eq '.1.3' &&
+ $arrayback->[2] eq '14'
+ );
+}
+else {
+ ok(0);
+}
+
+# implied string
+$newtest = new NetSNMP::OID ("snmpNotifyRowStatus.105.110.116.101.114.110.97.108.48");
+
+if ($newtest) {
+ $arrayback = $newtest->get_indexes();
+
+ ok($#$arrayback == 0 &&
+ $arrayback->[0] eq 'internal0'
+ );
+}
+else {
+ ok(0);
+}
+
+
+