blob: 417ae913178bf3fdde43a60a12d56a816939f7f0 [file] [log] [blame]
#!./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();