📄 async.t
字号:
#!./perlBEGIN { unless(grep /blib/, @INC) { chdir 't' if -d 't'; @INC = '../lib' if -d '../lib'; }}use Test;BEGIN {plan tests => 20}use SNMP;use vars qw($agent_port $comm $agent_host);require "t/startagent.pl";sub cb1; # forward referencesub cb2;sub cb3;sub cb4;sub cb5;sub cb6;sub cb7;sub cbDummy;$SNMP::verbose = 0;$SNMP::dump_packet = 0;my $sess = new SNMP::Session(DestHost => $agent_host, Community => $comm, RemotePort => $agent_port);# try getting unregistered OID.my $result = $sess->get([["HooHaaHooHaa","0"]], [\&cbDummy, $sess]);ok(!defined($result));# this get should work$result = $sess->get([["sysDescr","0"]], [\&cb1, $sess]);ok($result);SNMP::MainLoop();sub cb1{ my $sess = shift; my $vlist = shift; ok(defined($vlist)); my $tag = $vlist->[0]->tag; ok($tag eq 'sysDescr'); my $val = $vlist->[0]->val; ok(defined $val); my $iid = $vlist->[0]->iid; my $type = $vlist->[0]->type; ok($type eq 'OCTETSTR'); my $res = $sess->getnext([["sysDescr",0]], [\&cb2, $sess]); ok ($res);} # end of cb1sub cb2{ my $sess = shift; my $vlist = shift; ok(defined($vlist)); ok(ref($vlist->[0]) =~ /Varbind/); ok($vlist->[0][0] eq 'sysObjectID'); my $res = $sess->get([[".1.3.6.1.2.1.1.1.0"]], [\&cb3, $sess]); ok($res);} # end of cb2sub cb3{ my $sess = shift; my $vlist = shift; ok(defined($vlist)); ok($vlist->[0][0] eq 'sysDescr'); my $res = $sess->getnext([["sysDescr",0]], [\&cb4, $sess]); ok($res);} # end of cb3sub cb4{ my $sess = shift; my $vlist = shift; ok(defined $vlist); my $res = $sess->set("sysDescr.0", "hahaha", [\&cb5, $sess]);} # end of cb4sub cb5{ my $sess = shift; my $vlist = shift; ok(defined($vlist)); my $res = $sess->set("sysORID.1", ".1.3.6.1.2.1.1.1", [\&cb6, $sess]); ok(defined $res);} # end of cb5sub cb6{ my $sess = shift; my $vlist = shift; my $tag = $vlist->[0]->tag; my $val = $vlist->[0]->val; ok($tag =~ /^sysORID/);# create list of varbinds for GETS, val field can be null or omitted my $vars = new SNMP::VarList ( ['sysDescr', '0', ''], ['sysObjectID', '0'], ['sysUpTime', '0'], ['sysContact', '0'], ['sysName', '0'], ['sysLocation', '0'], ['sysServices', '0'], ['ifNumber', '0'], ['ifDescr', '1'], ['ifSpeed', '1'], ['snmpInPkts', '0'], ['snmpInBadVersions', '0'], ['snmpInBadCommunityNames', '0'], ['snmpInBadCommunityUses', '0'], ['snmpInASNParseErrs', '0'], ['snmpEnableAuthenTraps', '0'], ['sysORID', '1'], ['sysORDescr', '1'], ['sysORUpTime', '1'], ['sysORLastChange', '0'], ['ipInHdrErrors', '0'], ['ipDefaultTTL', '0'], ['ipInHdrErrors', '0'], ); my $res = $sess->get($vars, [\&cb7, $sess]); ok(defined $res);} # end of cb6sub cb7{ my $sess = shift; my $vlist = shift; my $tag = $vlist->[0]->tag; my $val = $vlist->[0]->val; ok(@{$vlist} == 23); snmptest_cleanup(); exit(0);} # end of cb7sub cbDummy { warn("error: this should not get called");}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -