/
01_basic.t
106 lines (98 loc) · 1.81 KB
/
01_basic.t
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
use strict;
use warnings;
use File::RotateLogs;
use File::Temp qw/tempdir/;
use Test::More;
my $tempdir = tempdir(CLEANUP=>1);
my $rotatelogs = File::RotateLogs->new(
logfile => $tempdir.'/test_log.%Y%m%d%H%M%S',
linkname => $tempdir.'/test_log',
rotationtime => 2,
maxage => 4,
sleep_before_remove => 2,
);
ok($rotatelogs);
$rotatelogs->print("foo\n");
{
my $c=0;
my $link;
my $linkf;
my $log;
my $logf;
for my $f ( glob($tempdir.'/test_log*') ) {
$c++;
if ( -l $f ) {
$link++;
$linkf = $f;
}
if ( -f $f && ! -l $f ) {
$log++;
$logf = $f;
}
}
is($c,2);
is($link,1);
is($log,1);
is($logf, readlink($linkf));
}
sleep(3);
$rotatelogs->print("bar\n");
{
my $c=0;
my $link;
my $linkf;
my $log;
my $logf;
for my $f ( sort { $a cmp $b } glob($tempdir.'/test_log*') ) {
$c++;
if ( -l $f ) {
$link++;
$linkf = $f;
}
if ( -f $f && ! -l $f ) {
$log++;
$logf = $f
}
}
is($c,3);
is($link,1);
is($log,2);
is($logf, readlink($linkf));
}
sleep(2);
$rotatelogs->print("baz\n");
sleep(1);
{
my $c=0;
my $link;
my $log;
my $lock;
for my $f ( glob($tempdir.'/test_log*') ) {
$c++;
$link++ if -l $f;
$log++ if -f $f && ! -l $f;
$lock++ if $f =~ m!lock$!;
}
is($c,5);
ok($link);
is($log,4);
ok($lock);
}
sleep(2);
{
my $c=0;
my $link;
my $log;
my $lock;
for my $f ( glob($tempdir.'/test_log*') ) {
$c++;
$link++ if -l $f;
$log++ if -f $f && ! -l $f;
$lock++ if $f =~ m!lock$!;
}
is($c,3);
ok($link);
is($log,2);
ok(!$lock);
}
done_testing();