notify.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 { $n = 10; plan tests => $n }
  10. use SNMP;
  11. use vars qw($agent_port $comm $comm2 $trap_port $agent_host $sec_name $priv_pass $auth_pass $bad_name);
  12. require 't/startagent.pl';
  13. $SNMP::debugging = 0;
  14. my $res;
  15. my $enterprise = '.1.3.6.1.2.1.1.1.0';
  16. my $generic = 'specific';
  17. #                         V1 trap testing
  18. ######################  1  #############################
  19. # Fire up a trap session.
  20. my $s1 =
  21.     new SNMP::Session (DestHost=>$agent_host,Version=>1,Community=>$comm,RemotePort=>$trap_port);
  22. ok(defined($s1));
  23. ##########################  2  ####################################
  24. # test v1 trap
  25. if (defined($s1)) {
  26.   $res = $s1->trap(enterprise => $enterprise, agent=>$agent_host, generic=>$generic,[[sysContact, 0, 'root@localhost'], [sysLocation, 0, 'here']] );
  27. }
  28. ok($res =~ /^0 but true/);
  29. ########################### 3 #############################
  30. # test with wrong varbind
  31. undef $res;
  32. if (defined($s1)) {
  33.   $res = $s1->trap([[$bad_name, 0, 'root@localhost'], [sysLocation, 0, 'here']] );
  34.   #print("res is $resn");
  35. }
  36. ok(!defined($res));
  37. #########################################################
  38. #                      V2 testing
  39. ########################## 4 ############################
  40. # Fire up a v2 trap session.
  41. my $s2 =
  42.     new SNMP::Session (Version=>2, DestHost=>$agent_host,Community=>$comm2,RemotePort=>$trap_port);
  43. ok(defined($s2));
  44. #########################  5  ###########################
  45. # test v2 trap
  46. undef $res;
  47. if (defined($s2)) {
  48.   $res = $s2->trap(uptime=>200, trapoid=>'coldStart',[[sysContact, 0, 'root@localhost'], [sysLocation, 0, 'here']] );
  49.   #print("res is $resn");
  50. }
  51. ok($res =~ /^0 but true/);
  52. ##########################  6  ##########################
  53. # no trapoid and uptime given. Should take defaults...
  54. my $ret;
  55. if (defined($s2)) {
  56.   $ret = $s2->trap([[sysContact, 0, 'root@localhost'], [sysLocation, 0, 'here']] );
  57.   #print("res is $retn");
  58. }
  59. ok(defined($ret));
  60. #########################################################
  61. #                     v3 testing
  62. ########################  7  ############################
  63. # Fire up a v3 trap session.
  64. my $s3 = new SNMP::Session(Version=>3, DestHost=> $agent_host, RemotePort=>$trap_port, SecName => $sec_name);
  65. ok(defined($s3));
  66. ########################  8  ###########################
  67. if (defined($s3)) {
  68.   $res = $s3->inform(uptime=>111, trapoid=>'coldStart', [[sysContact, 0, 'root@localhost'], [sysLocation, 0, 'here']] );
  69. }
  70. ok($res =~ /^0 but true/);
  71. #################### 9 #####################
  72. # Fire up a v3 trap session.
  73. $s3 = new SNMP::Session(Version=>3, DestHost=> $agent_host, RemotePort=>$trap_port, SecName => $sec_name, SecLevel => authPriv, AuthPass => $auth_pass, PrivPass => $priv_pass);
  74. ok(defined($s3));
  75. ########################  10  ###########################
  76. undef $res;
  77. if (defined($s3)) {
  78.     $res = $s3->inform(uptime=>111, trapoid=>'coldStart', [[sysContact, 0, 'root@localhost'], [sysLocation, 0, 'here']] );
  79.     print "res = $resn";
  80. }
  81.   
  82. ok($res =~ /^0 but true/);
  83. snmptest_cleanup();