initial commit
This commit is contained in:
78
api/perl/t/34-Monitoring-Livestatus-utf8_support.t
Normal file
78
api/perl/t/34-Monitoring-Livestatus-utf8_support.t
Normal file
@@ -0,0 +1,78 @@
|
||||
#!/usr/bin/env perl
|
||||
|
||||
#########################
|
||||
|
||||
use strict;
|
||||
use Encode;
|
||||
use Test::More;
|
||||
use Data::Dumper;
|
||||
|
||||
if ( !defined $ENV{TEST_SERVER} ) {
|
||||
my $msg = 'Author test. Set $ENV{TEST_SOCKET} and $ENV{TEST_SERVER} to run';
|
||||
plan( skip_all => $msg );
|
||||
} else {
|
||||
plan( tests => 9 );
|
||||
}
|
||||
|
||||
use_ok('Monitoring::Livestatus');
|
||||
|
||||
#use Log::Log4perl qw(:easy);
|
||||
#Log::Log4perl->easy_init($DEBUG);
|
||||
|
||||
#########################
|
||||
my $objects_to_test = {
|
||||
# create inet object with hash args
|
||||
'01 inet_hash_args' => Monitoring::Livestatus->new(
|
||||
verbose => 0,
|
||||
server => $ENV{TEST_SERVER},
|
||||
keepalive => 1,
|
||||
timeout => 3,
|
||||
retries_on_connection_error => 0,
|
||||
# logger => get_logger(),
|
||||
),
|
||||
|
||||
# create inet object with a single arg
|
||||
'02 inet_single_arg' => Monitoring::Livestatus::INET->new( $ENV{TEST_SERVER} ),
|
||||
};
|
||||
|
||||
my $author = 'Monitoring::Livestatus test';
|
||||
for my $key (sort keys %{$objects_to_test}) {
|
||||
my $ml = $objects_to_test->{$key};
|
||||
isa_ok($ml, 'Monitoring::Livestatus');
|
||||
|
||||
# we dont need warnings for testing
|
||||
$ml->warnings(0);
|
||||
|
||||
#########################
|
||||
my $downtimes = $ml->selectall_arrayref("GET downtimes\nColumns: id");
|
||||
my $num_downtimes = 0;
|
||||
$num_downtimes = scalar @{$downtimes} if defined $downtimes;
|
||||
|
||||
#########################
|
||||
# get a test host
|
||||
my $firsthost = $ml->selectscalar_value("GET hosts\nColumns: name\nLimit: 1");
|
||||
isnt($firsthost, undef, 'get test hostname') or BAIL_OUT($key.': got not test hostname');
|
||||
|
||||
my $expect = "aa ²&é\"'''(§è!çà)- %s ''%s'' aa ~ € bb";
|
||||
#my $expect = "öäüß";
|
||||
my $teststrings = [
|
||||
$expect,
|
||||
"aa \x{c2}\x{b2}&\x{c3}\x{a9}\"'''(\x{c2}\x{a7}\x{c3}\x{a8}!\x{c3}\x{a7}\x{c3}\x{a0})- %s ''%s'' aa ~ \x{e2}\x{82}\x{ac} bb",
|
||||
];
|
||||
for my $string (@{$teststrings}) {
|
||||
$ml->do('COMMAND ['.time().'] SCHEDULE_HOST_DOWNTIME;'.$firsthost.';'.time().';'.(time()+300).';1;0;300;'.$author.';'.$string);
|
||||
|
||||
# sometimes it takes while till the downtime is accepted
|
||||
my $waited = 0;
|
||||
while($downtimes = $ml->selectall_arrayref("GET downtimes\nColumns: id comment", { Slice => 1 }) and scalar @{$downtimes} < $num_downtimes + 1) {
|
||||
print "waiting for the downtime...\n";
|
||||
sleep(1);
|
||||
$waited++;
|
||||
BAIL_OUT('waited 30 seconds for the downtime...') if $waited > 30;
|
||||
}
|
||||
|
||||
my $last_downtime = pop @{$downtimes};
|
||||
#utf8::decode($expect);
|
||||
is($last_downtime->{'comment'}, $expect, 'get same utf8 comment: got '.Dumper($last_downtime));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user