diff options
Diffstat (limited to 'perl/OID/test.pl')
-rw-r--r-- | perl/OID/test.pl | 137 |
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); +} + + + |