mib.t
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:7k
- #!./perl
- # Written by John Stoffel (jfs@fluent.com) - 10/13/1997
- BEGIN {
- unless(grep /blib/, @INC) {
- chdir 't' if -d 't';
- @INC = '../lib' if -d '../lib';
- }
- }
- # to print the description...
- $SNMP::save_descriptions = 1;
- use Test;
- BEGIN {plan tests => 35}
- use SNMP;
- $SNMP::verbose = 0;
- $SNMP::best_guess = 2;
- use vars qw($bad_oid);
- require "t/startagent.pl";
- my $mib_file = 't/mib.txt';
- my $bad_mib_file = 'mib.txt';
- ############################# 1 ######################################
- #check if
- my $res = $SNMP::MIB{sysDescr}{label};
- #print("Label is:$resn");
- ok("sysDescr" eq $res);
- #print("n");
- ############################# 2 ######################################
- $res = $SNMP::MIB{sysDescr}{objectID};
- #print("OID is: $resn");
- ok(defined($res));
- #print("n");
- ############################# 3 ######################################
- $res = $SNMP::MIB{sysDescr}{access};
- #print("access is: $resn");
- ok($res eq 'ReadOnly');
- #print("n");
- ############################## 4 ###################################
- $res = $SNMP::MIB{sysLocation}{access};
- #$res = $SNMP::MIB{sysORIndex}{access};
- ok($res eq 'ReadWrite');
- ############################## 5 ###################################
- $res = $SNMP::MIB{sysLocation}{type};
- ok($res eq 'OCTETSTR');
- ############################# 6 ####################################
- $res = $SNMP::MIB{sysLocation}{status};
- #print STDERR ("status is: $resn");
- ok($res eq 'Current');
- #print STDERR ("n");
- ############################# 7 #################################
- $res = $SNMP::MIB{sysORTable}{access};
- #print("access is: $resn");
- ok($res eq 'NoAccess');
- #print("n");
- ############################# 8 ###############################
- $res = $SNMP::MIB{sysLocation}{subID};
- #print("subID is: $resn");
- ok(defined($res));
- #print("n");
- ############################ 9 ##############################
- $res = $SNMP::MIB{sysLocation}{syntax};
- #print("syntax is: $resn");
- ok($res eq 'DisplayString');
- #print("n");
- ############################ 10 ###########################
- $res = $SNMP::MIB{ipAdEntAddr}{syntax};
- ok($res eq 'IPADDR');
- #print("n");
- ########################## 11 ##########################
- $res = $SNMP::MIB{atNetAddress}{syntax};
- #print ("syntax is: $resn");
- ok($res eq 'NETADDR');
- #print("n");
- ######################## 12 ###############################
- $res = $SNMP::MIB{ipReasmOKs}{syntax};
- #print("syntax is: $resn");
- ok($res eq 'COUNTER');
- #print("n");
- ###################### 13 ##############################
- $res = $SNMP::MIB{sysDescr}{moduleID};
- #print("Module ID is: $resn");
- ok(defined($res));
- #print("n");
- ###################### 14 #########################
- $des = $SNMP::MIB{atNetAddress}{description};
- #print("des is --> $desn");
- ok(defined($des));
- #print("n");
- ###################### 15 #########################
- $res = $SNMP::MIB{atNetAddress}{nextNode};
- #print("res is --> $resn");
- ok(ref($res) eq "HASH");
- #print("n");
- ######################## 16 #########################
- $res = $SNMP::MIB{sysDescr}{children};
- #print("res is --> $resn");
- ok(ref($res) eq "ARRAY");
- #print("n");
- #################### 17 #########################
- $res = $SNMP::MIB{sysDescr}{badField};
- ok(!defined($res));
- ###################### 18 #########################
- $res = $SNMP::MIB{sysDescr}{hint};
- #print("res is --> $resn");
- #XXX: test fails due SMIv1 codes being returned intstead of SMIv2...
- #ok(defined($res) && $res =~ /^255a/);
- #print("n");
- ###################### 19 #########################
- $res = $SNMP::MIB{ifPhysAddress}{hint};
- #print("res is --> $resn");
- #XXX: test fails due SMIv1 codes being returned intstead of SMIv2...
- #ok(defined($res) && $res =~ /^1x:/);
- #print("n");
- ###################### some translate tests #######
- ##################### 20 #########################
- # Garbage names return Undef.
- my $type1 = SNMP::getType($bad_name);
- ok(!defined($type1));
- #printf "%s %dn", (!defined($type1)) ? "ok" :"not ok", $n++;
- ######################################################################
- # getType() supports numeric OIDs now
- my $type2 = SNMP::getType($oid);
- #XXX: test fails due SMIv1 codes being returned intstead of SMIv2...
- #ok(defined($type2) && $type2 =~ /OCTETSTR/);
- ######################################################################
- # This tests that sysDescr returns a valid type.
- my $type3 = SNMP::getType($name);
- ok(defined($type3));
- ######################################################################
- # Translation tests from Name -> OID
- # sysDescr to .1.3.6.1.2.1.1.1
- $oid_tag = SNMP::translateObj($name);
- ok($oid eq $oid_tag);
- ######################################################################
- # Translation tests from Name -> OID
- # RFC1213-MIB::sysDescr to .1.3.6.1.2.1.1.1
- $oid_tag = SNMP::translateObj($name_module);
- ok($oid eq $oid_tag);
- ######################################################################
- # Translation tests from Name -> OID
- # .iso.org.dod.internet.mgmt.mib-2.system.sysDescr to .1.3.6.1.2.1.1.1
- $oid_tag = SNMP::translateObj($name_long);
- ok($oid eq $oid_tag);
- ######################################################################
- # bad name returns 'undef'
- $oid_tag = '';
- $oid_tag = SNMP::translateObj($bad_name);
- ok(!defined($oid_tag));
- ######################################################################
- # OID -> name
- # .1.3.6.1.2.1.1.1 to sysDescr
- $name_tag = SNMP::translateObj($oid);
- ok($name eq $name_tag);
- ######################################################################
- # OID -> name
- # .1.3.6.1.2.1.1.1 to RFC1213-MIB::sysDescr or
- # .1.3.6.1.2.1.1.1 to SNMPv2-MIB::sysDescr
- $name_tag = SNMP::translateObj($oid,0,1);
- $name_module2 = $name_module2; # To eliminate 'only use once' variable warning
- ok(($name_module eq $name_tag) || ($name_module2 eq $name_tag));
- ######################################################################
- # OID -> name
- # .1.3.6.1.2.1.1.1 to .iso.org.dod.internet.mgmt.mib-2.system.sysDescr
- $name_tag = SNMP::translateObj($oid,1);
- ok($name_long eq $name_tag);
- ######################################################################
- # OID -> name
- # .1.3.6.1.2.1.1.1 to RFC1213-MIB::.iso.org.dod.internet.mgmt.mib-2.system.sysDescr or
- # .1.3.6.1.2.1.1.1 to SNMPv2-MIB::.iso.org.dod.internet.mgmt.mib-2.system.sysDescr
- $name_module_long = $name_module_long; # To eliminate 'only use once' variable warning
- $name_module_long2 = $name_module_long2; # To eliminate 'only use once' variable warning
- $name_tag = SNMP::translateObj($oid,1,1);
- ok(($name_module_long eq $name_tag) || ($name_module_long2 eq $name_tag));
- ######################################################################
- # bad OID -> Name
- $name_tag = SNMP::translateObj($bad_oid);
- ok($name ne $name_tag);
- #printf "%s %dn", ($name ne $name_tag) ? "ok" :"not ok", $n++;
- ######################################################################
- # ranges
- $node = $SNMP::MIB{snmpTargetAddrMMS};
- ok($node);
- $ranges = $node->{ranges};
- ok($ranges and ref $ranges eq 'ARRAY');
- ok(@$ranges == 2);
- ok($$ranges[0]{low} == 0);
- ok($$ranges[0]{high} == 0);
- ok($$ranges[1]{low} == 484);
- ok($$ranges[1]{high} == 2147483647);
- snmptest_cleanup();