|
|
@@ -0,0 +1,88 @@
|
|
|
+#!/usr/bin/perl -w -I ..
|
|
|
+#
|
|
|
+# check_file_age tests
|
|
|
+#
|
|
|
+# $Id$
|
|
|
+#
|
|
|
+
|
|
|
+use strict;
|
|
|
+use Test::More tests => 15;
|
|
|
+use NPTest;
|
|
|
+
|
|
|
+my $successOutput = '/^FILE_AGE OK: /';
|
|
|
+my $warningOutput = '/^FILE_AGE WARNING: /';
|
|
|
+my $criticalOutput = '/^FILE_AGE CRITICAL: /';
|
|
|
+my $unknownOutput = '/^FILE_AGE UNKNOWN: /';
|
|
|
+
|
|
|
+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 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;
|
|
|
+}
|