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

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 => 9 }
  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. my $n = 9;  # 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.    ['sysContact', '0'],
  26.    ['sysName', '0'],
  27.    ['sysLocation', '0'],
  28.    ['sysServices', '0'],
  29.    ['ifNumber', '0'],
  30.    ['ifDescr', '1'],
  31.    ['ifSpeed', '1'],
  32.   );
  33. ##############################  1  #####################################
  34. # Fire up a session.
  35.     my $s1 =
  36.     new SNMP::Session (DestHost=>$agent_host,Version=>1,Community=>$comm,RemotePort=>$agent_port);
  37.     ok(defined($s1));
  38. #############################  2  #######################################
  39. # Try getnext on sysDescr.0
  40. my $next = $s1->getnext('sysDescr.0');
  41. #print ("The next OID is : $nextn");
  42. ok($s1->{ErrorStr} eq '');
  43. #print STDERR "Error string1 = $s1->{ErrorStr}:$s1->{ErrorInd}n";
  44. #print("n");
  45. ###########################  3  ########################################
  46. #$v1 = $s1->getnext('sysLocation.0');
  47. #print ("The next OID is : $v1n");
  48. my $v2 = $s1->getnext('sysServices.0');
  49. #print ("The next OID is : $v2n");
  50. ok($s1->{ErrorStr} eq '');
  51. #print STDERR "Error string2 = $s1->{ErrorStr}:$s1->{ErrorInd}n";
  52. #print("n");
  53. ############################  4  #######################################
  54. # try it on an unknown OID
  55. my $v3 = $s1->getnext('Srivathsan.0');
  56. #print ("The unknown  OID is : $v3n");
  57. ok($s1->{ErrorStr} =~ /^Unknown/);
  58. #print STDERR "Error string5 = $s1->{ErrorStr}:$s1->{ErrorInd}n";
  59. #print("n");
  60. ############################# 5  #######################################
  61. # On a non-accessible value
  62. #my $kkk = $s1->getnext('vacmSecurityName.1');
  63. #print("kkk is $kkkn");
  64. #ok($s1->{ErrorInd} != 0);
  65. #print STDERR "Error string5 = $s1->{ErrorStr}:$s1->{ErrorInd}n";
  66. #print("n");
  67. #############################  6  ####################################
  68. # We should get back sysDescr.0 here.
  69. my $var = new SNMP::Varbind(['sysDescr']);
  70. my $res2 = $s1->getnext($var);
  71. #print("res2 is : $res2n");
  72. ok((not $s1->{ErrorStr} and not $s1->{ErrorInd}));
  73. ok((defined $var->iid and $var->iid eq 0));
  74. ok((defined $var->val and $var->val eq $res2));
  75. #############################  7  ######################################
  76. # get the next one after that as well for a second check
  77. my $res3 = $s1->getnext($var);
  78. #print("res3 is : $res3n");
  79. ok((defined $var->tag and $var->tag eq 'sysObjectID'));
  80. ok((defined $var->val and $var->val eq $res3));
  81.     snmptest_cleanup();