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

SNMP编程

开发平台:

Unix_Linux

  1. #!./perl
  2. BEGIN {
  3.     unless(grep /blib/, @INC) {
  4.         chdir 't' if -d 't';
  5.         @INC = '../lib' if -d '../lib';
  6.     }
  7. }
  8. use Test;
  9. BEGIN { plan tests => 7 }
  10. use SNMP;
  11. use vars qw($agent_port $comm $agent_host);
  12. require "t/startagent.pl";
  13. my $junk_oid = ".1.3.6.1.2.1.1.1.1.1.1";
  14. my $oid = ".1.3.6.1.2.1.1.1";
  15. my $junk_name = 'fooDescr';
  16. my $junk_host = 'no.host.here';
  17. my $name = "gmarzot@nortelnetworks.com";
  18. $SNMP::debugging = 0;
  19. $n = 15;  # Number of tests to run
  20. #print "1..$nn";
  21. if ($n == 0) { exit 0; }
  22. # create list of varbinds for GETS, val field can be null or omitted
  23. my $vars = new SNMP::VarList (
  24.    ['sysDescr', '0', ''],
  25.    ['sysObjectID', '0'],
  26.    ['sysUpTime', '0'],
  27.    ['sysContact', '0'],
  28.    ['sysName', '0'],
  29.    ['sysLocation', '0'],
  30.    ['sysServices', '0'],
  31.    ['ifNumber', '0'],
  32.    ['ifDescr', '1'],
  33.    ['ifSpeed', '1'],
  34.    ['snmpInPkts', '0'],
  35.    ['snmpInBadVersions', '0'],
  36.    ['snmpInBadCommunityNames', '0'],
  37.    ['snmpInBadCommunityUses', '0'],
  38.    ['snmpInASNParseErrs', '0'],
  39.    ['snmpEnableAuthenTraps', '0'],
  40. #    ['snmpSilentDrops', '0'],
  41. #    ['snmpProxyDrops', '0'],
  42. #    ['snmpTrapEnterprise', '2'],
  43. #    ['hrStorageType', '2'],
  44. #    ['hrSystemDate', '0'],
  45.    ['sysORIndex', '1'],
  46.    ['sysORID', '2'],
  47.    ['sysORDescr', '3'],
  48.    ['sysORUpTime', '4'],
  49. #    ['ifName', '1'],
  50.    ['sysORLastChange', '0'],
  51.    ['ipInHdrErrors', '0'],
  52.    ['ipDefaultTTL', '0'],
  53.    ['ipInHdrErrors', '0'],
  54.           );
  55. ################################################################
  56. #    ['ipNetToMediaPhysAddress', '0'],
  57. #    ['ipAdEntAddr', '0'],
  58. #    ['snmpTrapOID', '0'],
  59. #    ['hrSystemNumUsers', '0'],
  60. #    ['hrFSLastFullBackupDate', '0'],
  61. #    ['ifPromiscuousMode', '0'],
  62. #########################  1  #######################################
  63. # Fire up a session.
  64.     my $s1 =
  65.     new SNMP::Session (DestHost=>$agent_host,Version=>1,Community=>$comm,RemotePort=>$agent_port);
  66.     ok(defined($s1));
  67. #######################  2  ##########################################
  68. # Set some value and see if the value is set properly.
  69. $originalLocation = $s1->get('sysLocation.0');
  70. $value = 'Router Management Labs';
  71. $s1->set('sysLocation.0', $value);
  72. $finalvalue = $s1->get('sysLocation.0');
  73. ok($originalLocation ne $finalvalue);
  74. #print STDERR "Error string = $s1->{ErrorStr}:$s1->{ErrorInd}n";
  75. #print("set value is: $finalvaluenn");
  76. $s1->set('sysLocation.0', $originalLocation);
  77. ########################   3   #######################################
  78. # Now, reset that string with a non-string value.
  79. # This will FAIL. :)
  80. #$nonstrvalue = '.9.23.56.7';
  81. #$s1->set('sysLocation.0', $nonstrvalue);
  82. #$finalvalue = $s1->get('sysLocation.0');
  83. #ok(!defined($finalvalue));
  84. #if (($initialvalue cmp $finalvalue) != 0 ) {
  85. #    ok(1);
  86. #}
  87. #print STDERR "Error string = $s1->{ErrorStr}:$s1->{ErrorInd}n";
  88. #print("set value is: $finalvaluenn");
  89. #$s1->set('sysLocation.0', $originalLocation);
  90. #######################   4   #####################################
  91. # Test for an integer (READ-ONLY)
  92. $originalservice = $s1->get('sysServices.0');
  93. #print("services is: $originalservicen");
  94. $junk_service = "Nortel Networks";
  95. $s1->set('sysServices.0', $junk_service);
  96. $finalvalue = $s1->get('sysServices.0');
  97. #print("services is: $finalvaluen");
  98. #print("Services is: $originalservicen");
  99. ok($originalservice eq $finalvalue);
  100. #print STDERR "Error string = $s1->{ErrorStr}:$s1->{ErrorInd}n";
  101. $s1->set('sysServices.0',$originalservice);
  102. #print("n");
  103. ##################   5   ######################
  104. # Test for an integer (READ-WRITE)
  105. # The snmpEnableAuthenTraps takes only two values - 1 and 2.
  106. # If any other value is tried to be set, it doesn't set and
  107. # retains the old value.
  108. $originalTrap = $s1->get('snmpEnableAuthenTraps.0');
  109. #print("trap is -- $originalTrapn");
  110. $junk_trap = "Nortel Networks";
  111. $s1->set('snmpEnableAuthenTraps.0', $junk_trap);
  112. $finalvalue = $s1->get('snmpEnableAuthenTraps.0');
  113. #print("final trap is: $finalvaluen");
  114. ok($finalvalue ne $junk_trap);
  115. # Should the error be 'Value out of range: SNMPERR_RANGE ?
  116. #print STDERR "Error string = $s1->{ErrorStr}:$s1->{ErrorInd}n";
  117. $s1->set('snmpEnableAuthenTraps.0',$originalTrap);
  118. #print("n");
  119. ###################  6  #######################
  120. # Test for a TimeTicks (is this advisable? )
  121. # Trying to set uptime which cannot be done (READ-ONLY).
  122. #$time = $s1->get('sysUpTime.0');
  123. #print("up time is : $time hundredths of a secondn");
  124. #$junk_time = 12345;
  125. #$s1->set('sysUpTime.0', $junk_time);
  126. #$finalvalue = $s1->get('sysUpTime.0');
  127. #print("final time is: $finalvalue hundredths of a second n");
  128. # Will the final value always be equal to the initial value?
  129. # depends on how fast this piece of code executes?
  130. #ok($finalvalue == $time);
  131. #print STDERR "Error string = $s1->{ErrorStr}:$s1->{ErrorInd}n";
  132. #print("n");
  133. ###################   7   ######################
  134. #Test for a Counter32 type.
  135. # READ-ONLY.
  136. #$Pkts = $s1->get('snmpInPkts.0');
  137. #print(" pkts is : $Pktsn");
  138. #$junk_pkts = -1234;
  139. #$s1->set('snmpInPkts.0', $junk_pkts);
  140. #$finalPkts = $s1->get('snmpInPkts.0');
  141. #print("now pkts is : $finalPktsn");
  142. #ok($finalPkts > $Pkts);
  143. # Expecting genErr
  144. #ok($s1->{ErrorStr} =~ /^(gen/);
  145. #print STDERR "pkts is = $s1->{ErrorStr}:$s1->{ErrorInd}n";
  146. #print("n");
  147. ##################   8   ##############################
  148. # Set a non-accessible attribute
  149. $s1->set('ipAddrEntry.1', 'MyEID');
  150. # What should I expect - genErr or Bad variable type ?
  151. # What gets checked first - type or accessibility?
  152. # if type, then this is right..else, genErr is expected.
  153. ok($s1->{ErrorStr} =~ /^Bad/ );
  154. #print STDERR "Error string = $s1->{ErrorStr}:$s1->{ErrorInd}n";
  155. #print("n");
  156. #################  12  ##########################
  157. # Time stamp test - READ-ONLY
  158. #$origtime = $s1->get('sysORLastChange.0');
  159. #print("Time is: $origtimen");
  160. #print STDERR "Error string = $s1->{ErrorStr}:$s1->{ErrorInd}n";
  161. #$time = $s1->set('sysORLastChange.0', 12345);
  162. #print("time stamp is : $time n");
  163. # Should get genErr.
  164. #ok($time =~ /^genErr/);
  165. #print STDERR "Error string = $s1->{ErrorStr}:$s1->{ErrorInd}n";
  166. #print("n");
  167. ##############   13   ############################
  168. # OID test
  169. my $oldoid = $s1->get("sysORID.1");
  170. #print("OID is : $oldoidn");
  171. $junk_OID = ".6.6.6.6.6.6";
  172. $s1->set('sysORID.1', $junk_OID);
  173. $newOID = $s1->get("sysORID.1");
  174. #print("new oid is $newOIDn");
  175. ok($oldoid eq $newOID);
  176. #print STDERR "Error string = $s1->{ErrorStr}:$s1->{ErrorInd}n";
  177. #print("n");
  178. ################  14  ##########################
  179. # Try setting an unregistered OID.
  180. $junk_data = 'hehehe';
  181. $s1->set('ifmyData.0', $junk_data);
  182. #print STDERR "Error string = $s1->{ErrorStr}:$s1->{ErrorInd}n";
  183. ok( $s1->{ErrorStr} =~ /^Unknown/ );
  184. ##############################################
  185. snmptest_cleanup();