summaryrefslogtreecommitdiffstats
path: root/plugins/t
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/t')
-rw-r--r--plugins/t/check_swap.t72
1 files changed, 61 insertions, 11 deletions
diff --git a/plugins/t/check_swap.t b/plugins/t/check_swap.t
index eaa81083..93e481c3 100644
--- a/plugins/t/check_swap.t
+++ b/plugins/t/check_swap.t
@@ -5,39 +5,89 @@
5# 5#
6 6
7use strict; 7use strict;
8use Test::More tests => 14; 8use warnings;
9use Test::More tests => 35;
9use NPTest; 10use NPTest;
11use JSON;
10 12
11my $successOutput = '/^SWAP OK - [0-9]+\% free \([0-9]+MiB out of [0-9]+MiB\)/'; 13my $successOutput = '/^OK.* - [0-9]+\% free \([0-9]+MiB out of [0-9]+MiB\)/';
12my $failureOutput = '/^SWAP CRITICAL - [0-9]+\% free \([0-9]+MiB out of [0-9]+MiB\)/'; 14my $failureOutput = '/^CRITICAL: .*- [0-9]+\% free \([0-9]+MiB out of [0-9]+MiB\)/';
13my $warnOutput = '/^SWAP WARNING - [0-9]+\% free \([0-9]+MiB out of [0-9]+MiB\)/'; 15my $warnOutput = '/^WARNING: .*- [0-9]+\% free \([0-9]+MiB out of [0-9]+MiB\)/';
14 16
17my $outputFormat = '--output-format one-line';
15my $result; 18my $result;
16 19
17$result = NPTest->testCmd( "./check_swap" ); # Always OK 20$result = NPTest->testCmd( "./check_swap $outputFormat" ); # Always OK
18cmp_ok( $result->return_code, "==", 0, "Always OK" ); 21cmp_ok( $result->return_code, "==", 0, "Always OK" );
19like( $result->output, $successOutput, "Right output" ); 22like( $result->output, $successOutput, "Right output" );
20 23
21$result = NPTest->testCmd( "./check_swap -w 1048576 -c 1048576" ); # 1 MB free 24$result = NPTest->testCmd( "./check_swap -w 1048576 -c 1048576 $outputFormat" ); # 1 MB free
22cmp_ok( $result->return_code, "==", 0, "At least 1MB free" ); 25cmp_ok( $result->return_code, "==", 0, "At least 1MB free" );
23like( $result->output, $successOutput, "Right output" ); 26like( $result->output, $successOutput, "Right output" );
24 27
25$result = NPTest->testCmd( "./check_swap -w 1% -c 1%" ); # 1% free 28$result = NPTest->testCmd( "./check_swap -w 1% -c 1% $outputFormat" ); # 1% free
26cmp_ok( $result->return_code, "==", 0, 'At least 1% free' ); 29cmp_ok( $result->return_code, "==", 0, 'At least 1% free' );
27like( $result->output, $successOutput, "Right output" ); 30like( $result->output, $successOutput, "Right output" );
28 31
29$result = NPTest->testCmd( "./check_swap -w 100% -c 100%" ); # 100% (always critical) 32$result = NPTest->testCmd( "./check_swap -w 100% -c 100% $outputFormat" ); # 100% (always critical)
30cmp_ok( $result->return_code, "==", 2, 'Get critical because not 100% free' ); 33cmp_ok( $result->return_code, "==", 2, 'Get critical because not 100% free' );
31like( $result->output, $failureOutput, "Right output" ); 34like( $result->output, $failureOutput, "Right output" );
32 35
33$result = NPTest->testCmd( "./check_swap -w 100% -c 1%" ); # 100% (always warn) 36$result = NPTest->testCmd( "./check_swap -w 100% -c 1% $outputFormat" ); # 100% (always warn)
34cmp_ok( $result->return_code, "==", 1, 'Get warning because not 100% free' ); 37cmp_ok( $result->return_code, "==", 1, 'Get warning because not 100% free' );
35like( $result->output, $warnOutput, "Right output" ); 38like( $result->output, $warnOutput, "Right output" );
36 39
37$result = NPTest->testCmd( "./check_swap -w 100%" ); # 100% (single threshold, always warn) 40$result = NPTest->testCmd( "./check_swap -w 100% $outputFormat" ); # 100% (single threshold, always warn)
38cmp_ok( $result->return_code, "==", 1, 'Get warning because not 100% free' ); 41cmp_ok( $result->return_code, "==", 1, 'Get warning because not 100% free' );
39like( $result->output, $warnOutput, "Right output" ); 42like( $result->output, $warnOutput, "Right output" );
40 43
41$result = NPTest->testCmd( "./check_swap -c 100%" ); # 100% (single threshold, always critical) 44$result = NPTest->testCmd( "./check_swap -c 100% $outputFormat" ); # 100% (single threshold, always critical)
42cmp_ok( $result->return_code, "==", 2, 'Get critical because not 100% free' ); 45cmp_ok( $result->return_code, "==", 2, 'Get critical because not 100% free' );
43like( $result->output, $failureOutput, "Right output" ); 46like( $result->output, $failureOutput, "Right output" );
47
48
49$outputFormat = '--output-format mp-test-json';
50my $output;
51my $message = '/^[0-9]+\% free \([0-9]+MiB out of [0-9]+MiB\)/';
52
53$result = NPTest->testCmd( "./check_swap $outputFormat" ); # Always OK
54cmp_ok( $result->return_code, "==", 0, "Always OK" );
55$output = decode_json($result->output);
56is($output->{'state'}, "OK", "State was correct");
57like($output->{'checks'}->[0]->{'output'}, $message, "Output was correct");
58
59$result = NPTest->testCmd( "./check_swap -w 1048576 -c 1048576 $outputFormat" ); # 1 MB free
60cmp_ok( $result->return_code, "==", 0, "Always OK" );
61$output = decode_json($result->output);
62is($output->{'state'}, "OK", "State was correct");
63like($output->{'checks'}->[0]->{'output'}, $message, "Output was correct");
64
65$result = NPTest->testCmd( "./check_swap -w 1% -c 1% $outputFormat" ); # 1% free
66cmp_ok( $result->return_code, "==", 0, "Always OK" );
67$output = decode_json($result->output);
68is($output->{'state'}, "OK", "State was correct");
69like($output->{'checks'}->[0]->{'output'}, $message, "Output was correct");
70
71$result = NPTest->testCmd( "./check_swap -w 100% -c 100% $outputFormat" ); # 100% (always critical)
72cmp_ok( $result->return_code, "==", 0, "Always OK" );
73$output = decode_json($result->output);
74is($output->{'state'}, "CRITICAL", "State was correct");
75like($output->{'checks'}->[0]->{'output'}, $message, "Output was correct");
76
77$result = NPTest->testCmd( "./check_swap -w 100% -c 1% $outputFormat" ); # 100% (always warn)
78cmp_ok( $result->return_code, "==", 0, "Always OK" );
79$output = decode_json($result->output);
80is($output->{'state'}, "WARNING", "State was correct");
81like($output->{'checks'}->[0]->{'output'}, $message, "Output was correct");
82
83$result = NPTest->testCmd( "./check_swap -w 100% $outputFormat" ); # 100% (single threshold, always warn)
84cmp_ok( $result->return_code, "==", 0, "Always OK" );
85$output = decode_json($result->output);
86is($output->{'state'}, "WARNING", "State was correct");
87like($output->{'checks'}->[0]->{'output'}, $message, "Output was correct");
88
89$result = NPTest->testCmd( "./check_swap -c 100% $outputFormat" ); # 100% (single threshold, always critical)
90cmp_ok( $result->return_code, "==", 0, "Always OK" );
91$output = decode_json($result->output);
92is($output->{'state'}, "CRITICAL", "State was correct");
93like($output->{'checks'}->[0]->{'output'}, $message, "Output was correct");