76 lines
1.7 KiB
Perl
Executable File
76 lines
1.7 KiB
Perl
Executable File
# Before `make install' is performed this script should be runnable with
|
|
# `make test'. After `make install' it should work as `perl 1.t'
|
|
|
|
#########################
|
|
|
|
use Test::More;
|
|
eval "
|
|
use Test::Fork; ";
|
|
plan skip_all => "Test::Fork required for this test" if $@;
|
|
plan tests => 12;
|
|
|
|
use Log::Dispatch;
|
|
use Log::Dispatch::File::Rolling;
|
|
ok(1); # If we made it this far, we're ok.
|
|
|
|
#########################1
|
|
|
|
my $dispatcher = Log::Dispatch->new;
|
|
ok($dispatcher);
|
|
|
|
#########################2
|
|
|
|
my %params = (
|
|
name => 'file',
|
|
min_level => 'debug',
|
|
filename => 'logfile.txt',
|
|
);
|
|
|
|
my $Rolling = Log::Dispatch::File::Rolling->new(%params);
|
|
ok($Rolling);
|
|
|
|
#########################3
|
|
|
|
$dispatcher->add($Rolling);
|
|
|
|
ok(1);
|
|
|
|
#########################4
|
|
|
|
my @message = map {'logtest id ' . int(rand(9999))} 1 .. 3;
|
|
|
|
my $initial_fileno = fileno $Rolling->{fh};
|
|
$dispatcher->log( level => 'info', message => $message[0] );
|
|
my $parent_fileno = fileno $Rolling->{fh};
|
|
is( $parent_fileno, $initial_fileno, "initial log call doesn't reopen" );
|
|
fork_ok( 2, sub {
|
|
$dispatcher->log( level => 'info', message => $message[1] );
|
|
my $child_fileno = fileno $Rolling->{fh};
|
|
isnt( $child_fileno, $parent_fileno, "logging in child reopens" );
|
|
$dispatcher = $Rolling = undef;
|
|
ok(1);
|
|
});
|
|
$dispatcher->log( level => 'info', message => $message[2] );
|
|
my $_parent_fileno = fileno $Rolling->{fh};
|
|
is( $_parent_fileno, $parent_fileno, "logging in parent does not reopen" );
|
|
|
|
ok(1);
|
|
|
|
#########################5
|
|
|
|
$dispatcher = $Rolling = undef;
|
|
|
|
ok(1);
|
|
|
|
#########################6
|
|
|
|
my @logfiles = glob('logfile*.txt');
|
|
|
|
ok(scalar(@logfiles) == 1 or scalar(@logfiles) == 2);
|
|
|
|
#########################7
|
|
|
|
foreach my $file (@logfiles) {
|
|
unlink $file;
|
|
}
|