test.pl
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:3k
源码类别:

SNMP编程

开发平台:

Unix_Linux

  1. # Before `make install' is performed this script should be runnable with
  2. # `make test'. After `make install' it should work as `perl test.pl'
  3. #########################
  4. # change 'tests => 1' to 'tests => last_test_to_print';
  5. use Test;
  6. BEGIN { plan tests => 38 ; $ENV{'SNMPCONFPATH'} = 'nopath'};
  7. use NetSNMP::OID;
  8. use Data::Dumper;
  9. ok(1); # If we made it this far, we're ok.
  10. #########################
  11. # Insert your test code below, the Test module is use()ed here so read
  12. # its man page ( perldoc Test ) for help writing this test script.
  13. my $oid = new NetSNMP::OID(".1.3.6.1");
  14. ok(ref($oid) eq "NetSNMP::OID");
  15. ok(ref($oid->{oidptr}) eq "netsnmp_oidPtr");
  16. #print STDERR ref($oid),"n";
  17. my $tostring = "$oid";
  18. #print STDERR "$tostringn";
  19. ok($tostring eq "internet");
  20. my $oid2 = new NetSNMP::OID(".1.3.6.1.2");
  21. $tostring = "$oid2";
  22. #print STDERR "$tostringn";
  23. ok($tostring eq "mgmt");
  24. my $oid3 = new NetSNMP::OID(".1.3.6.1");
  25. my $val = NetSNMP::OID::snmp_oid_compare($oid, $oid2);
  26. #print STDERR "compare result: $valn";
  27. ok($val == -1);
  28. $val = $oid2->snmp_oid_compare($oid);
  29. #print STDERR "compare result: $valn";
  30. ok($val == 1);
  31. $val = NetSNMP::OID::compare($oid, $oid);
  32. #print STDERR "compare result: $valn";
  33. ok($val == 0);
  34. $val = $oid->compare($oid3);
  35. #print STDERR "compare result: $valn";
  36. ok($val == 0);
  37. ok(($oid <=> $oid2) == -1);
  38. ok(($oid2 <=> $oid) == 1);
  39. ok(($oid <=> $oid3) == 0);
  40. ok($oid < $oid2);
  41. ok($oid <= $oid2);
  42. ok($oid2 > $oid);
  43. ok($oid2 >= $oid);
  44. ok($oid == $oid3);
  45. ok($oid <= $oid3);
  46. ok($oid >= $oid3);
  47. ok(new NetSNMP::OID('system') < new NetSNMP::OID('interfaces'));
  48. ok(new NetSNMP::OID('interfaces') > new NetSNMP::OID('system'));
  49. ok(new NetSNMP::OID('sysORTable') > new NetSNMP::OID('system'));
  50. my @a = $oid->to_array();
  51. ok($a[0] == 1 && $a[1] == 3 && $a[2] == 6 && $a[3] == 1 && $#a == 3);
  52. $oid->append(".1.2.3");
  53. ok("$oid" eq "directory.2.3");
  54. $oidmore = $oid + ".8.9.10";
  55. ok($oidmore == new NetSNMP::OID("directory.2.3.8.9.10"));
  56. ok("$oid" eq "directory.2.3");
  57. ok(ref($oidmore) eq "NetSNMP::OID");
  58. # += should work
  59. $oidmore += ".11";
  60. ok($oidmore == new NetSNMP::OID("directory.2.3.8.9.10.11"));
  61. $oidstr = $oidmore + ""wes"";
  62. ok($oidstr == new NetSNMP::OID("directory.2.3.8.9.10.11.3.119.101.115"));
  63. $oidstr = $oidmore + "'wes'";
  64. ok($oidstr == new NetSNMP::OID("directory.2.3.8.9.10.11.119.101.115"));
  65. # just make sure you can do it twice (ie, not modify the original)
  66. $oidstr = $oidmore + "'wes'";
  67. ok($oidstr == new NetSNMP::OID("directory.2.3.8.9.10.11.119.101.115"));
  68. $oidstr = $oidmore + "internet";
  69. ok($oidstr == new NetSNMP::OID("directory.2.3.8.9.10.11.1.3.6.1"));
  70. $oidstr = $oidmore + "999";
  71. ok($oidstr == new NetSNMP::OID("directory.2.3.8.9.10.11.999"));
  72. $oidstr = $oidmore + (new NetSNMP::OID(".1.3.6.1"));
  73. ok($oidstr == new NetSNMP::OID("directory.2.3.8.9.10.11.1.3.6.1"));
  74. $oid = new NetSNMP::OID("nosuchoidexists");
  75. ok(ref($oid) ne "NetSNMP::OID");
  76. ok($oidstr->length() == 15);
  77. # multiple encoded values
  78. my $newtest = new NetSNMP::OID ("nsModuleName.5.109.121.99.116.120.2.1.3.14");
  79. if ($newtest) {
  80.   my $arrayback = $newtest->get_indexes();
  81.   
  82.   ok($#$arrayback == 2 &&
  83.     $arrayback->[0] eq 'myctx' &&
  84.     $arrayback->[1] eq '.1.3' &&
  85.     $arrayback->[2] eq '14'
  86.   );
  87. }
  88. else {
  89.   ok(0);
  90. }
  91.   
  92. # implied string
  93. $newtest = new NetSNMP::OID ("snmpNotifyRowStatus.105.110.116.101.114.110.97.108.48");
  94. if ($newtest) {
  95.   $arrayback = $newtest->get_indexes();
  96.   
  97.   ok($#$arrayback == 0 &&
  98.     $arrayback->[0] eq 'internal0'
  99.   );
  100. }
  101. else {
  102.   ok(0);
  103. }