#!./perl BEGIN { unless(grep /blib/, @INC) { chdir 't' if -d 't'; @INC = '../lib' if -d '../lib'; } eval "use Cwd qw(abs_path)"; $ENV{'SNMPCONFPATH'} = 'nopath'; $ENV{'MIBDIRS'} = '+' . abs_path("../../mibs"); } use Test; BEGIN { plan tests => 9 } use SNMP; use vars qw($agent_port $comm $agent_host); require "t/startagent.pl"; my $junk_oid = ".1.3.6.1.2.1.1.1.1.1.1"; my $oid = '.1.3.6.1.2.1.1.1'; my $junk_name = 'fooDescr'; my $junk_host = 'no.host.here'; my $name = "gmarzot\@nortelnetworks.com"; $SNMP::debugging = 0; my $n = 9; # Number of tests to run #print "1..$n\n"; #if ($n == 0) { exit 0; } # create list of varbinds for GETS, val field can be null or omitted my $vars = new SNMP::VarList ( ['sysDescr', '0', ''], ['sysContact', '0'], ['sysName', '0'], ['sysLocation', '0'], ['sysServices', '0'], ['ifNumber', '0'], ['ifDescr', '1'], ['ifSpeed', '1'], ); ############################## 1 ##################################### # Fire up a session. my $s1 = new SNMP::Session (DestHost=>$agent_host,Version=>1,Community=>$comm,RemotePort=>$agent_port); ok(defined($s1)); ############################# 2 ####################################### # Try getnext on sysDescr.0 my $next = $s1->getnext('sysDescr.0'); #print ("The next OID is : $next\n"); ok($s1->{ErrorStr} eq ''); #print STDERR "Error string1 = $s1->{ErrorStr}:$s1->{ErrorInd}\n"; #print("\n"); ########################### 3 ######################################## #$v1 = $s1->getnext('sysLocation.0'); #print ("The next OID is : $v1\n"); my $v2 = $s1->getnext('sysServices.0'); #print ("The next OID is : $v2\n"); ok($s1->{ErrorStr} eq ''); #print STDERR "Error string2 = $s1->{ErrorStr}:$s1->{ErrorInd}\n"; #print("\n"); ############################ 4 ####################################### # try it on an unknown OID my $v3 = $s1->getnext('Srivathsan.0'); #print ("The unknown OID is : $v3\n"); ok($s1->{ErrorStr} =~ /^Unknown/); #print STDERR "Error string5 = $s1->{ErrorStr}:$s1->{ErrorInd}\n"; #print("\n"); ############################# 5 ####################################### # On a non-accessible value #my $kkk = $s1->getnext('vacmSecurityName.1'); #print("kkk is $kkk\n"); #ok($s1->{ErrorInd} != 0); #print STDERR "Error string5 = $s1->{ErrorStr}:$s1->{ErrorInd}\n"; #print("\n"); ############################# 6 #################################### # We should get back sysDescr.0 here. my $var = new SNMP::Varbind(['sysDescr']); my $res2 = $s1->getnext($var); #print("res2 is : $res2\n"); ok((not $s1->{ErrorStr} and not $s1->{ErrorInd})); ok((defined $var->iid and $var->iid eq 0)); ok((defined $var->val and $var->val eq $res2)); ############################# 7 ###################################### # get the next one after that as well for a second check my $res3 = $s1->getnext($var); #print("res3 is : $res3\n"); ok((defined $var->tag and $var->tag eq 'sysObjectID')); ok((defined $var->val and $var->val eq $res3)); snmptest_cleanup();