diff options
Diffstat (limited to 'plugins-scripts/t')
| -rw-r--r-- | plugins-scripts/t/check_file_age.t | 103 | ||||
| -rw-r--r-- | plugins-scripts/t/check_uptime.t | 129 |
2 files changed, 165 insertions, 67 deletions
diff --git a/plugins-scripts/t/check_file_age.t b/plugins-scripts/t/check_file_age.t index ebf673f5..8b876708 100644 --- a/plugins-scripts/t/check_file_age.t +++ b/plugins-scripts/t/check_file_age.t | |||
| @@ -20,105 +20,74 @@ my $temp_link = "/tmp/check_file_age.link.tmp"; | |||
| 20 | 20 | ||
| 21 | unlink $temp_file, $temp_link; | 21 | unlink $temp_file, $temp_link; |
| 22 | 22 | ||
| 23 | $result = NPTest->testCmd( | 23 | $result = NPTest->testCmd("./check_file_age"); |
| 24 | "./check_file_age" | ||
| 25 | ); | ||
| 26 | cmp_ok( $result->return_code, '==', 3, "Missing parameters" ); | 24 | cmp_ok( $result->return_code, '==', 3, "Missing parameters" ); |
| 27 | like ( $result->output, $unknownOutput, "Output for unknown correct" ); | 25 | like ( $result->output, $unknownOutput, "Output for unknown correct" ); |
| 28 | 26 | ||
| 29 | $result = NPTest->testCmd( | 27 | $result = NPTest->testCmd("./check_file_age -f $temp_file"); |
| 30 | "./check_file_age -f $temp_file" | ||
| 31 | ); | ||
| 32 | cmp_ok( $result->return_code, '==', 2, "File not exists" ); | 28 | cmp_ok( $result->return_code, '==', 2, "File not exists" ); |
| 33 | like ( $result->output, $criticalOutput, "Output for file missing correct" ); | 29 | like ( $result->output, $criticalOutput, "Output for file missing correct" ); |
| 34 | 30 | ||
| 35 | write_chars(100); | 31 | write_chars(100); |
| 36 | $result = NPTest->testCmd( | 32 | $result = NPTest->testCmd("./check_file_age -f $temp_file"); |
| 37 | "./check_file_age -f $temp_file" | ||
| 38 | ); | ||
| 39 | cmp_ok( $result->return_code, '==', 0, "File is new enough" ); | 33 | cmp_ok( $result->return_code, '==', 0, "File is new enough" ); |
| 40 | like ( $result->output, $successOutput, "Output for success correct" ); | 34 | like ( $result->output, $successOutput, "Output for success correct" ); |
| 41 | 35 | ||
| 42 | sleep 2; | 36 | sleep 2; |
| 43 | 37 | ||
| 44 | $result = NPTest->testCmd( | 38 | $result = NPTest->testCmd("./check_file_age -f $temp_file -w 1"); |
| 45 | "./check_file_age -f $temp_file -w 1" | ||
| 46 | ); | ||
| 47 | cmp_ok( $result->return_code, '==', 1, "Warning for file over 1 second old" ); | 39 | cmp_ok( $result->return_code, '==', 1, "Warning for file over 1 second old" ); |
| 48 | like ( $result->output, $warningOutput, "Output for warning correct" ); | 40 | like ( $result->output, $warningOutput, "Output for warning correct" ); |
| 49 | 41 | ||
| 50 | $result = NPTest->testCmd( | 42 | $result = NPTest->testCmd("./check_file_age -f $temp_file -c 1"); |
| 51 | "./check_file_age -f $temp_file -w 0:1" | ||
| 52 | ); | ||
| 53 | cmp_ok( $result->return_code, '==', 1, "Warning for file over 1 second old by range" ); | ||
| 54 | like ( $result->output, $warningOutput, "Output for warning by range correct" ); | ||
| 55 | |||
| 56 | $result = NPTest->testCmd( | ||
| 57 | "./check_file_age -f $temp_file -c 1" | ||
| 58 | ); | ||
| 59 | cmp_ok( $result->return_code, '==', 2, "Critical for file over 1 second old" ); | 43 | cmp_ok( $result->return_code, '==', 2, "Critical for file over 1 second old" ); |
| 60 | like ( $result->output, $criticalOutput, "Output for critical correct" ); | 44 | like ( $result->output, $criticalOutput, "Output for critical correct" ); |
| 61 | 45 | ||
| 62 | $result = NPTest->testCmd( | 46 | $result = NPTest->testCmd("./check_file_age -f $temp_file -c 1000 -W 100"); |
| 63 | "./check_file_age -f $temp_file -c 0:1" | ||
| 64 | ); | ||
| 65 | cmp_ok( $result->return_code, '==', 2, "Critical for file over 1 second old by range" ); | ||
| 66 | like ( $result->output, $criticalOutput, "Output for critical by range correct" ); | ||
| 67 | |||
| 68 | $result = NPTest->testCmd( | ||
| 69 | "./check_file_age -f $temp_file -c 1000 -W 100" | ||
| 70 | ); | ||
| 71 | cmp_ok( $result->return_code, '==', 0, "Checking file size" ); | 47 | cmp_ok( $result->return_code, '==', 0, "Checking file size" ); |
| 72 | 48 | ||
| 73 | $result = NPTest->testCmd( | 49 | $result = NPTest->testCmd("./check_file_age -f $temp_file -c 1000 -W 100"); |
| 74 | "./check_file_age -f $temp_file -c 0:1000 -W 0:100" | ||
| 75 | ); | ||
| 76 | cmp_ok( $result->return_code, '==', 0, "Checking file size by range" ); | ||
| 77 | |||
| 78 | $result = NPTest->testCmd( | ||
| 79 | "./check_file_age -f $temp_file -c 1000 -W 100" | ||
| 80 | ); | ||
| 81 | like( $result->output, $performanceOutput, "Checking for performance Output" ); | 50 | like( $result->output, $performanceOutput, "Checking for performance Output" ); |
| 82 | 51 | ||
| 83 | $result = NPTest->testCmd( | 52 | $result = NPTest->testCmd("./check_file_age -f $temp_file -c 1000 -W 100"); |
| 84 | "./check_file_age -f $temp_file -c 1000 -W 100" | ||
| 85 | ); | ||
| 86 | like( $result->output, $performanceOutput, "Checking for performance Output from range" ); | 53 | like( $result->output, $performanceOutput, "Checking for performance Output from range" ); |
| 87 | 54 | ||
| 88 | $result = NPTest->testCmd( | 55 | $result = NPTest->testCmd("./check_file_age -f /non/existent --ignore-missing"); |
| 89 | "./check_file_age -f /non/existent --ignore-missing" | ||
| 90 | ); | ||
| 91 | cmp_ok( $result->return_code, '==', 0, "Honours --ignore-missing" ); | 56 | cmp_ok( $result->return_code, '==', 0, "Honours --ignore-missing" ); |
| 92 | 57 | ||
| 93 | $result = NPTest->testCmd( | 58 | $result = NPTest->testCmd("./check_file_age -f $temp_file -c 1000 -W 101"); |
| 94 | "./check_file_age -f $temp_file -c 1000 -W 101" | ||
| 95 | ); | ||
| 96 | cmp_ok( $result->return_code, '==', 1, "One byte too short" ); | 59 | cmp_ok( $result->return_code, '==', 1, "One byte too short" ); |
| 97 | 60 | ||
| 98 | $result = NPTest->testCmd( | 61 | $result = NPTest->testCmd("./check_file_age -f $temp_file -c 1000 -C 101"); |
| 99 | "./check_file_age -f $temp_file -c 1000 -W 101:" | ||
| 100 | ); | ||
| 101 | cmp_ok( $result->return_code, '==', 1, "One byte too short by range" ); | ||
| 102 | |||
| 103 | $result = NPTest->testCmd( | ||
| 104 | "./check_file_age -f $temp_file -c 1000 -C 101" | ||
| 105 | ); | ||
| 106 | cmp_ok( $result->return_code, '==', 2, "One byte too short - critical" ); | 62 | cmp_ok( $result->return_code, '==', 2, "One byte too short - critical" ); |
| 107 | 63 | ||
| 108 | $result = NPTest->testCmd( | 64 | SKIP: { |
| 109 | "./check_file_age -f $temp_file -c 1000 -C 101:" | 65 | eval 'use Monitoring::Plugin::Range'; |
| 110 | ); | 66 | skip "Monitoring::Plugin::Range module require", 9 if $@; |
| 111 | cmp_ok( $result->return_code, '==', 2, "One byte too short by range - critical" ); | 67 | |
| 68 | $result = NPTest->testCmd("./check_file_age -f $temp_file -w 0:1"); | ||
| 69 | cmp_ok( $result->return_code, '==', 1, "Warning for file over 1 second old by range" ); | ||
| 70 | like ( $result->output, $warningOutput, "Output for warning by range correct" ); | ||
| 71 | |||
| 72 | $result = NPTest->testCmd("./check_file_age -f $temp_file -c 0:1"); | ||
| 73 | cmp_ok( $result->return_code, '==', 2, "Critical for file over 1 second old by range" ); | ||
| 74 | like ( $result->output, $criticalOutput, "Output for critical by range correct" ); | ||
| 75 | |||
| 76 | $result = NPTest->testCmd("./check_file_age -f $temp_file -c 0:1000 -W 0:100"); | ||
| 77 | cmp_ok( $result->return_code, '==', 0, "Checking file size by range" ); | ||
| 78 | |||
| 79 | $result = NPTest->testCmd("./check_file_age -f $temp_file -c 1000 -W 101:"); | ||
| 80 | cmp_ok( $result->return_code, '==', 1, "One byte too short by range" ); | ||
| 81 | |||
| 82 | $result = NPTest->testCmd("./check_file_age -f $temp_file -c 1000 -W 0:99"); | ||
| 83 | cmp_ok( $result->return_code, '==', 1, "One byte too long by range" ); | ||
| 112 | 84 | ||
| 113 | $result = NPTest->testCmd( | 85 | $result = NPTest->testCmd("./check_file_age -f $temp_file -c 1000 -C 101:"); |
| 114 | "./check_file_age -f $temp_file -c 1000 -W 0:99" | 86 | cmp_ok( $result->return_code, '==', 2, "One byte too short by range - critical" ); |
| 115 | ); | ||
| 116 | cmp_ok( $result->return_code, '==', 1, "One byte too long by range" ); | ||
| 117 | 87 | ||
| 118 | $result = NPTest->testCmd( | 88 | $result = NPTest->testCmd("./check_file_age -f $temp_file -c 1000 -C 0:99"); |
| 119 | "./check_file_age -f $temp_file -c 1000 -C 0:99" | 89 | cmp_ok( $result->return_code, '==', 2, "One byte too long by range - critical" ); |
| 120 | ); | 90 | }; |
| 121 | cmp_ok( $result->return_code, '==', 2, "One byte too long by range - critical" ); | ||
| 122 | 91 | ||
| 123 | symlink $temp_file, $temp_link or die "Cannot create symlink"; | 92 | symlink $temp_file, $temp_link or die "Cannot create symlink"; |
| 124 | $result = NPTest->testCmd("./check_file_age -f $temp_link -c 10"); | 93 | $result = NPTest->testCmd("./check_file_age -f $temp_link -c 10"); |
diff --git a/plugins-scripts/t/check_uptime.t b/plugins-scripts/t/check_uptime.t new file mode 100644 index 00000000..c395307c --- /dev/null +++ b/plugins-scripts/t/check_uptime.t | |||
| @@ -0,0 +1,129 @@ | |||
| 1 | #!/usr/bin/perl -w -I .. | ||
| 2 | # | ||
| 3 | # check_uptime tests | ||
| 4 | # | ||
| 5 | # | ||
| 6 | |||
| 7 | use strict; | ||
| 8 | use Test::More tests => 40; | ||
| 9 | use NPTest; | ||
| 10 | |||
| 11 | my $result; | ||
| 12 | |||
| 13 | $result = NPTest->testCmd( | ||
| 14 | "./check_uptime" | ||
| 15 | ); | ||
| 16 | cmp_ok( $result->return_code, '==', 3, "Missing parameters" ); | ||
| 17 | like ( $result->output, '/^Usage: check_uptime -w/', "Output for missing parameters correct" ); | ||
| 18 | |||
| 19 | $result = NPTest->testCmd( | ||
| 20 | "./check_uptime --help" | ||
| 21 | ); | ||
| 22 | cmp_ok( $result->return_code, '==', 3, "Help output requested" ); | ||
| 23 | like ( $result->output, '/ABSOLUTELY NO WARRANTY/', "Output for help correct" ); | ||
| 24 | |||
| 25 | $result = NPTest->testCmd( | ||
| 26 | "./check_uptime -w 5 -c 2" | ||
| 27 | ); | ||
| 28 | cmp_ok( $result->return_code, '==', 3, "Warning greater than critical" ); | ||
| 29 | like ( $result->output, '/^Upper Warning .*cannot be greater than Critical/', "Output for warning greater than critical correct" ); | ||
| 30 | |||
| 31 | $result = NPTest->testCmd( | ||
| 32 | "./check_uptime -c 1000 -W 100 2>&1" | ||
| 33 | ); | ||
| 34 | like ( $result->output, '/^Unknown option: W/', "Output with wrong parameter is correct" ); | ||
| 35 | |||
| 36 | $result = NPTest->testCmd( | ||
| 37 | "./check_uptime -f -w 1 -c 2" | ||
| 38 | ); | ||
| 39 | cmp_ok( $result->return_code, '==', 2, "Uptime higher than 2 seconds" ); | ||
| 40 | like ( $result->output, '/Running for \d+/', "Output for the f parameter correct" ); | ||
| 41 | |||
| 42 | $result = NPTest->testCmd( | ||
| 43 | "./check_uptime -s -w 1 -c 2" | ||
| 44 | ); | ||
| 45 | cmp_ok( $result->return_code, '==', 2, "Uptime higher than 2 seconds" ); | ||
| 46 | like ( $result->output, '/Running since \d+/', "Output for the s parameter correct" ); | ||
| 47 | |||
| 48 | $result = NPTest->testCmd( | ||
| 49 | "./check_uptime -w 1 -c 2" | ||
| 50 | ); | ||
| 51 | cmp_ok( $result->return_code, '==', 2, "Uptime higher than 2 seconds" ); | ||
| 52 | like ( $result->output, '/^CRITICAL: uptime is \d+ seconds/', "Output for uptime higher than 2 seconds correct" ); | ||
| 53 | |||
| 54 | $result = NPTest->testCmd( | ||
| 55 | "./check_uptime -w 1 -c 9999w" | ||
| 56 | ); | ||
| 57 | cmp_ok( $result->return_code, '==', 1, "Uptime lower than 9999 weeks" ); | ||
| 58 | like ( $result->output, '/^WARNING: uptime is \d+ seconds/', "Output for uptime lower than 9999 weeks correct" ); | ||
| 59 | |||
| 60 | $result = NPTest->testCmd( | ||
| 61 | "./check_uptime -w 9998w -c 9999w" | ||
| 62 | ); | ||
| 63 | cmp_ok( $result->return_code, '==', 0, "Uptime lower than 9998 weeks" ); | ||
| 64 | like ( $result->output, '/^OK: uptime is \d+ seconds/', "Output for uptime lower than 9998 weeks correct" ); | ||
| 65 | like ( $result->output, '/\|uptime=[0-9]+s;6046790400;6047395200;/', "Checking for performance output" ); | ||
| 66 | |||
| 67 | $result = NPTest->testCmd( | ||
| 68 | "./check_uptime -w 111222d -c 222333d" | ||
| 69 | ); | ||
| 70 | cmp_ok( $result->return_code, '==', 0, "Uptime lower than 111222 days" ); | ||
| 71 | like ( $result->output, '/^OK: uptime is \d+ seconds/', "Output for uptime lower than 111222 days correct" ); | ||
| 72 | like ( $result->output, '/\|uptime=[0-9]+s;9609580800;19209571200;/', "Checking for performance output" ); | ||
| 73 | |||
| 74 | # Same as before, hopefully uptime is higher than 2 seconds so no warning | ||
| 75 | $result = NPTest->testCmd( | ||
| 76 | "./check_uptime -w 2:111222d -c 1:222333d" | ||
| 77 | ); | ||
| 78 | cmp_ok( $result->return_code, '==', 0, "Uptime lower than 111222 days, and higher 2 seconds" ); | ||
| 79 | like ( $result->output, '/^OK: uptime is \d+ seconds/', "Output for uptime lower than 111222 days, and higher 2 seconds correct" ); | ||
| 80 | like ( $result->output, '/\|uptime=[0-9]+s;9609580800;19209571200;/', "Checking for performance output" ); | ||
| 81 | |||
| 82 | # Same as before, now the low warning should trigger | ||
| 83 | $result = NPTest->testCmd( | ||
| 84 | "./check_uptime -w 111221d:111222d -c 1:222333d" | ||
| 85 | ); | ||
| 86 | cmp_ok( $result->return_code, '==', 1, "Uptime lower than 111221 days raises warning" ); | ||
| 87 | like ( $result->output, '/^WARNING: uptime is \d+ seconds/', "Output for uptime lower than 111221 days correct" ); | ||
| 88 | like ( $result->output, '/Exceeds lower warn threshold/', "Exceeds text correct" ); | ||
| 89 | like ( $result->output, '/\|uptime=[0-9]+s;9609580800;19209571200;/', "Checking for performance output" ); | ||
| 90 | |||
| 91 | # Same as before, now the low critical should trigger | ||
| 92 | $result = NPTest->testCmd( | ||
| 93 | "./check_uptime -w 111221d:111222d -c 111220d:222333d" | ||
| 94 | ); | ||
| 95 | cmp_ok( $result->return_code, '==', 2, "Uptime lower than 111220 days raises critical" ); | ||
| 96 | like ( $result->output, '/^CRITICAL: uptime is \d+ seconds/', "Output for uptime lower than 111220 days correct" ); | ||
| 97 | like ( $result->output, '/Exceeds lower crit threshold/', "Exceeds text correct" ); | ||
| 98 | like ( $result->output, '/\|uptime=[0-9]+s;9609580800;19209571200;/', "Checking for performance output" ); | ||
| 99 | |||
| 100 | |||
| 101 | # | ||
| 102 | # Range values using ":" without two parts ("a:b") is invalid | ||
| 103 | # Strings without two parts are always considered as upper threshold | ||
| 104 | # | ||
| 105 | |||
| 106 | $result = NPTest->testCmd( | ||
| 107 | "./check_uptime -w 2: -c 1:4" | ||
| 108 | ); | ||
| 109 | cmp_ok( $result->return_code, '==', 3, "Wrong parameter format raises unknown" ); | ||
| 110 | like ( $result->output, '/^Upper warning .* is not numeric/', "Output for wrong parameter format correct" ); | ||
| 111 | |||
| 112 | $result = NPTest->testCmd( | ||
| 113 | "./check_uptime -w 2:3 -c 1:" | ||
| 114 | ); | ||
| 115 | cmp_ok( $result->return_code, '==', 3, "Wrong parameter format raises unknown" ); | ||
| 116 | like ( $result->output, '/^Upper critical .* is not numeric/', "Output for wrong parameter format correct" ); | ||
| 117 | |||
| 118 | $result = NPTest->testCmd( | ||
| 119 | "./check_uptime -w :3 -c 1:4" | ||
| 120 | ); | ||
| 121 | cmp_ok( $result->return_code, '==', 3, "Wrong parameter format raises unknown" ); | ||
| 122 | like ( $result->output, '/^Upper warning .* is not numeric/', "Output for wrong parameter format correct" ); | ||
| 123 | |||
| 124 | $result = NPTest->testCmd( | ||
| 125 | "./check_uptime -w 2:3 -c :4" | ||
| 126 | ); | ||
| 127 | cmp_ok( $result->return_code, '==', 3, "Wrong parameter format raises unknown" ); | ||
| 128 | like ( $result->output, '/^Upper critical .* is not numeric/', "Output for wrong parameter format correct" ); | ||
| 129 | |||
