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

SNMP编程

开发平台:

Unix_Linux

  1. #!./perl
  2. # Written by John Stoffel (jfs@fluent.com) - 10/13/1997
  3. BEGIN {
  4.     unless(grep /blib/, @INC) {
  5.         chdir 't' if -d 't';
  6.         @INC = '../lib' if -d '../lib';
  7.     }
  8. }
  9. # to print the description...
  10. $SNMP::save_descriptions = 1;
  11. use Test;
  12. BEGIN {plan tests => 35}
  13. use SNMP;
  14. $SNMP::verbose = 0;
  15. $SNMP::best_guess = 2;
  16. use vars qw($bad_oid);
  17. require "t/startagent.pl";
  18. my $mib_file = 't/mib.txt';
  19. my $bad_mib_file = 'mib.txt';
  20. #############################  1  ######################################
  21. #check if
  22. my $res = $SNMP::MIB{sysDescr}{label};
  23. #print("Label is:$resn");
  24. ok("sysDescr" eq $res);
  25. #print("n");
  26. #############################  2  ######################################
  27. $res =  $SNMP::MIB{sysDescr}{objectID};
  28. #print("OID is: $resn");
  29. ok(defined($res));
  30. #print("n");
  31. #############################  3  ######################################
  32. $res =  $SNMP::MIB{sysDescr}{access};
  33. #print("access is: $resn");
  34. ok($res eq 'ReadOnly');
  35. #print("n");
  36. ##############################  4  ###################################
  37. $res =  $SNMP::MIB{sysLocation}{access};
  38. #$res =  $SNMP::MIB{sysORIndex}{access};
  39. ok($res eq 'ReadWrite');
  40. ##############################  5  ###################################
  41. $res =  $SNMP::MIB{sysLocation}{type};
  42. ok($res eq 'OCTETSTR');
  43. #############################  6  ####################################
  44. $res =  $SNMP::MIB{sysLocation}{status};
  45. #print STDERR ("status is: $resn");
  46. ok($res eq 'Current');
  47. #print STDERR ("n");
  48. #############################  7  #################################
  49. $res =  $SNMP::MIB{sysORTable}{access};
  50. #print("access is: $resn");
  51. ok($res eq 'NoAccess');
  52. #print("n");
  53. #############################  8  ###############################
  54. $res = $SNMP::MIB{sysLocation}{subID};
  55. #print("subID is: $resn");
  56. ok(defined($res));
  57. #print("n");
  58. ############################  9  ##############################
  59. $res = $SNMP::MIB{sysLocation}{syntax};
  60. #print("syntax is: $resn");
  61. ok($res eq 'DisplayString');
  62. #print("n");
  63. ############################  10  ###########################
  64. $res = $SNMP::MIB{ipAdEntAddr}{syntax};
  65. ok($res eq 'IPADDR');
  66. #print("n");
  67. ##########################  11  ##########################
  68. $res = $SNMP::MIB{atNetAddress}{syntax};
  69. #print ("syntax is: $resn");
  70. ok($res eq 'NETADDR');
  71. #print("n");
  72. ########################   12  ###############################
  73. $res = $SNMP::MIB{ipReasmOKs}{syntax};
  74. #print("syntax is: $resn");
  75. ok($res eq 'COUNTER');
  76. #print("n");
  77. ######################   13  ##############################
  78. $res = $SNMP::MIB{sysDescr}{moduleID};
  79. #print("Module ID is: $resn");
  80. ok(defined($res));
  81. #print("n");
  82. ######################  14   #########################
  83. $des = $SNMP::MIB{atNetAddress}{description};
  84. #print("des is --> $desn");
  85. ok(defined($des));
  86. #print("n");
  87. ######################  15   #########################
  88. $res = $SNMP::MIB{atNetAddress}{nextNode};
  89. #print("res is --> $resn");
  90. ok(ref($res) eq "HASH");
  91. #print("n");
  92. ########################  16   #########################
  93. $res = $SNMP::MIB{sysDescr}{children};
  94. #print("res is --> $resn");
  95. ok(ref($res) eq "ARRAY");
  96. #print("n");
  97. ####################  17   #########################
  98. $res = $SNMP::MIB{sysDescr}{badField};
  99. ok(!defined($res));
  100. ######################  18   #########################
  101. $res = $SNMP::MIB{sysDescr}{hint};
  102. #print("res is --> $resn");
  103. #XXX: test fails due SMIv1 codes being returned intstead of SMIv2...
  104. #ok(defined($res) && $res =~ /^255a/);
  105. #print("n");
  106. ######################  19   #########################
  107. $res = $SNMP::MIB{ifPhysAddress}{hint};
  108. #print("res is --> $resn");
  109. #XXX: test fails due SMIv1 codes being returned intstead of SMIv2...
  110. #ok(defined($res) && $res =~ /^1x:/);
  111. #print("n");
  112. ######################  some translate tests  #######
  113. #####################  20  #########################
  114. # Garbage names return Undef.
  115. my $type1 = SNMP::getType($bad_name);
  116. ok(!defined($type1));
  117. #printf "%s %dn", (!defined($type1)) ? "ok" :"not ok", $n++;
  118. ######################################################################
  119. # getType() supports numeric OIDs now
  120. my $type2 = SNMP::getType($oid);
  121. #XXX: test fails due SMIv1 codes being returned intstead of SMIv2...
  122. #ok(defined($type2) && $type2 =~ /OCTETSTR/);
  123. ######################################################################
  124. # This tests that sysDescr returns a valid type.
  125. my $type3 = SNMP::getType($name);
  126. ok(defined($type3));
  127. ######################################################################
  128. # Translation tests from Name -> OID
  129. # sysDescr to .1.3.6.1.2.1.1.1
  130. $oid_tag = SNMP::translateObj($name);
  131. ok($oid eq $oid_tag);
  132. ######################################################################
  133. # Translation tests from Name -> OID
  134. # RFC1213-MIB::sysDescr to .1.3.6.1.2.1.1.1
  135. $oid_tag = SNMP::translateObj($name_module);
  136. ok($oid eq $oid_tag);
  137. ######################################################################
  138. # Translation tests from Name -> OID
  139. # .iso.org.dod.internet.mgmt.mib-2.system.sysDescr to .1.3.6.1.2.1.1.1
  140. $oid_tag = SNMP::translateObj($name_long);
  141. ok($oid eq $oid_tag);
  142. ######################################################################
  143. # bad name returns 'undef'
  144. $oid_tag = '';
  145. $oid_tag = SNMP::translateObj($bad_name);
  146. ok(!defined($oid_tag));
  147. ######################################################################
  148. # OID -> name
  149. # .1.3.6.1.2.1.1.1 to sysDescr
  150. $name_tag = SNMP::translateObj($oid);
  151. ok($name eq $name_tag);
  152. ######################################################################
  153. # OID -> name
  154. # .1.3.6.1.2.1.1.1 to RFC1213-MIB::sysDescr or
  155. # .1.3.6.1.2.1.1.1 to SNMPv2-MIB::sysDescr
  156. $name_tag = SNMP::translateObj($oid,0,1);
  157. $name_module2 = $name_module2; # To eliminate 'only use once' variable warning
  158. ok(($name_module eq $name_tag) || ($name_module2 eq $name_tag));
  159. ######################################################################
  160. # OID -> name
  161. # .1.3.6.1.2.1.1.1 to .iso.org.dod.internet.mgmt.mib-2.system.sysDescr
  162. $name_tag = SNMP::translateObj($oid,1);
  163. ok($name_long eq $name_tag);
  164. ######################################################################
  165. # OID -> name
  166. # .1.3.6.1.2.1.1.1 to RFC1213-MIB::.iso.org.dod.internet.mgmt.mib-2.system.sysDescr or
  167. # .1.3.6.1.2.1.1.1 to SNMPv2-MIB::.iso.org.dod.internet.mgmt.mib-2.system.sysDescr
  168. $name_module_long = $name_module_long; # To eliminate 'only use once' variable warning
  169. $name_module_long2 = $name_module_long2; # To eliminate 'only use once' variable warning
  170. $name_tag = SNMP::translateObj($oid,1,1);
  171. ok(($name_module_long eq $name_tag) || ($name_module_long2 eq $name_tag));
  172. ######################################################################
  173. # bad OID -> Name
  174. $name_tag = SNMP::translateObj($bad_oid);
  175. ok($name ne $name_tag);
  176. #printf "%s %dn", ($name ne $name_tag) ? "ok" :"not ok", $n++;
  177. ######################################################################
  178. # ranges
  179. $node = $SNMP::MIB{snmpTargetAddrMMS};
  180. ok($node);
  181. $ranges = $node->{ranges};
  182. ok($ranges and ref $ranges eq 'ARRAY');
  183. ok(@$ranges == 2);
  184. ok($$ranges[0]{low} == 0);
  185. ok($$ranges[0]{high} == 0);
  186. ok($$ranges[1]{low} == 484);
  187. ok($$ranges[1]{high} == 2147483647);
  188. snmptest_cleanup();