aboutsummaryrefslogtreecommitdiff
path: root/plugins-scripts/t/check_file_age.t
blob: 50a2e6996a9864b86e63ab1b00734305da728af5 (plain)
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
#!/usr/bin/perl -w -I ..
#
# check_file_age tests
#
#

use strict;
use Test::More tests => 17;
use NPTest;

my $successOutput = '/^FILE_AGE OK: /';
my $warningOutput = '/^FILE_AGE WARNING: /';
my $criticalOutput = '/^FILE_AGE CRITICAL: /';
my $unknownOutput = '/^FILE_AGE UNKNOWN: /';
my $performanceOutput = '/ \| age=[0-9]+s;[0-9]+;[0-9]+ size=[0-9]+B;[0-9]+;[0-9]+;0$/';

my $result;
my $temp_file = "/tmp/check_file_age.tmp";
my $temp_link = "/tmp/check_file_age.link.tmp";

unlink $temp_file, $temp_link;

$result = NPTest->testCmd(
	"./check_file_age"
	);
cmp_ok( $result->return_code, '==', 3, "Missing parameters" );
like  ( $result->output, $unknownOutput, "Output for unknown correct" );

$result = NPTest->testCmd(
	"./check_file_age -f $temp_file"
	);
cmp_ok( $result->return_code, '==', 2, "File not exists" );
like  ( $result->output, $criticalOutput, "Output for file missing correct" );

write_chars(100);
$result = NPTest->testCmd(
	"./check_file_age -f $temp_file"
	);
cmp_ok( $result->return_code, '==', 0, "File is new enough" );
like  ( $result->output, $successOutput, "Output for success correct" );

sleep 2;

$result = NPTest->testCmd(
	"./check_file_age -f $temp_file -w 1"
	);
cmp_ok( $result->return_code, '==', 1, "Warning for file over 1 second old" );
like  ( $result->output, $warningOutput, "Output for warning correct" );

$result = NPTest->testCmd(
	"./check_file_age -f $temp_file -c 1"
	);
cmp_ok( $result->return_code, '==', 2, "Critical for file over 1 second old" );
like  ( $result->output, $criticalOutput, "Output for critical correct" );

$result = NPTest->testCmd(
	"./check_file_age -f $temp_file -c 1000 -W 100"
	);
cmp_ok( $result->return_code, '==', 0, "Checking file size" );

$result = NPTest->testCmd(
	"./check_file_age -f $temp_file -c 1000 -W 100"
	);
like( $result->output, $performanceOutput, "Checking for performance Output" );

$result = NPTest->testCmd(
	"./check_file_age -f /non/existent --ignore-missing"
	);
cmp_ok( $result->return_code, '==', 0, "Honours --ignore-missing" );

$result = NPTest->testCmd(
	"./check_file_age -f $temp_file -c 1000 -W 101"
	);
cmp_ok( $result->return_code, '==', 1, "One byte too short" );

$result = NPTest->testCmd(
	"./check_file_age -f $temp_file -c 1000 -C 101"
	);
cmp_ok( $result->return_code, '==', 2, "One byte too short - critical" );

symlink $temp_file, $temp_link or die "Cannot create symlink";
$result = NPTest->testCmd("./check_file_age -f $temp_link -c 10");
cmp_ok( $result->return_code, '==', 0, "Works for symlinks" );
unlink $temp_link;

unlink $temp_file;
mkdir $temp_file or die "Cannot create directory";
$result = NPTest->testCmd("./check_file_age -f $temp_file -c 1");
cmp_ok( $result->return_code, '==', 0, "Works for directories" );
rmdir $temp_file;


sub write_chars {
	my $size = shift;
	open F, "> $temp_file" or die "Cannot write to $temp_file";
	print F "A" x $size;
	close F;
}