blob: c7af105db8ddfc3a91a4c6f9db53b24f9c253c2f [file] [log] [blame]
#!/usr/bin/perl
# HEADER Basic perl functionality to a UDP agent
BEGIN {
if (exists($ENV{'srcdir'})) {
push @INC, "$ENV{'srcdir'}/testing/fulltests/support";
} elsif (-d "fulltests/support") {
push @INC, "fulltests/support";
} elsif (-d "../support") {
push @INC, "../support";
}
}
use NetSNMPTest;
use Test;
use SNMP;
my $value;
plan(tests => 10);
ok(1,1,"started up");
# use a basic UDP port
my $destination = "udp:localhost:9897";
my $test = new NetSNMPTest(agentaddress => $destination);
# set it up with a snmpv3 USM user
$test->config_agent("createuser testuser MD5 notareallpassword");
$test->config_agent("rwuser testuser");
$test->config_agent("syscontact itworked");
$test->DIE("failed to start the agent") if (!$test->start_agent());
# now create a session to test things with
my $session = new SNMP::Session(DestHost => $destination,
Version => '3',
SecName => 'testuser',
SecLevel => 'authNoPriv',
AuthProto => 'MD5',
AuthPass => 'notareallpassword');
ok(ref($session), 'SNMP::Session', "created a session");
######################################################################
# GET test
$value = $session->get('sysContact.0');
ok($value, 'itworked');
######################################################################
# GETNEXT test
$value = $session->getnext('sysContact');
ok($value, 'itworked');
######################################################################
# SET test
$value = $session->get('sysLocation.0');
ok($value ne 'yep', 1, 'Ensuring the sysLocation setting is not "yep"');
my $varbind = new SNMP::Varbind(['sysLocation', '0', 'yep', 'OCTETSTR']);
$value = $session->set($varbind);
ok(($value == 0), 1, 'return value from set was a success');
my $value = $session->get('sysLocation.0');
ok($value, 'yep');
######################################################################
# GETBULK test
$varbind = new SNMP::Varbind(['sysContact']);
my @values = $session->getbulk(0, 3, $varbind);
ok($#values == 2);
ok($values[0] eq 'itworked');
ok($values[2] eq 'yep');
######################################################################
# gettable() test
######################################################################
# cleanup
$test->stop_agent();