1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
use strict;
use warnings;
use Test::More;
BEGIN {
eval "use IO::Socket::INET;";
if ($@) {
plan skip_all => "No IO::Socket::INET installed";
exit(0);
}
if (!$ENV{LOG_HANDLER_SOCK_TEST}) {
plan skip_all => "Set \$ENV{LOG_HANDLER_SOCK_TEST} to 1 to enable this test";
exit(0);
}
};
use Log::Handler::Output::Socket;
use IO::Socket::INET;
eval {
$SIG{ALRM} = sub { die "STOP TEST" };
alarm 60;
};
my $sock = IO::Socket::INET->new(
LocalAddr => '127.0.0.1',
Proto => 'tcp',
Listen => 1,
Timeout => 15
) or die $!;
my $port = $sock->sockport;
my $pid = fork;
if (!$pid) {
my $r = $sock->accept;
my $m = <$r> || 'empty';
if ($m ne 'test message from logger') {
die "something wents wrong ($m)";
}
$sock->close;
waitpid($pid, 0);
exit(0);
}
$sock->close;
sleep 1;
plan tests => 3;
ok(1, 'fork');
my $log = Log::Handler::Output::Socket->new(
peeraddr => '127.0.0.1',
peerport => $port,
proto => 'tcp',
timeout => 15,
persistent => 0,
reconnect => 0,
);
ok(1, 'new');
$log->log(message => 'test message from logger') or do {
ok(0, 'testing log() - '.$log->errstr);
};
ok(1, 'testing log()');
|