[monitoring-plugins] Add tests for check_swap with JSON output
Lorenz Kästle
git at monitoring-plugins.org
Fri Feb 21 14:40:11 CET 2025
Module: monitoring-plugins
Branch: master
Commit: ec18b80cdbdc2c4c1e7eb587e251177e8cc7ca11
Author: Lorenz Kästle <12514511+RincewindsHat at users.noreply.github.com>
Date: Wed Feb 19 12:07:01 2025 +0100
URL: https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=ec18b80c
Add tests for check_swap with JSON output
---
plugins/t/check_swap.t | 50 +++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 49 insertions(+), 1 deletion(-)
diff --git a/plugins/t/check_swap.t b/plugins/t/check_swap.t
index 6ef2323d..93e481c3 100644
--- a/plugins/t/check_swap.t
+++ b/plugins/t/check_swap.t
@@ -6,8 +6,9 @@
use strict;
use warnings;
-use Test::More tests => 14;
+use Test::More tests => 35;
use NPTest;
+use JSON;
my $successOutput = '/^OK.* - [0-9]+\% free \([0-9]+MiB out of [0-9]+MiB\)/';
my $failureOutput = '/^CRITICAL: .*- [0-9]+\% free \([0-9]+MiB out of [0-9]+MiB\)/';
@@ -43,3 +44,50 @@ like( $result->output, $warnOutput, "Right output" );
$result = NPTest->testCmd( "./check_swap -c 100% $outputFormat" ); # 100% (single threshold, always critical)
cmp_ok( $result->return_code, "==", 2, 'Get critical because not 100% free' );
like( $result->output, $failureOutput, "Right output" );
+
+
+$outputFormat = '--output-format mp-test-json';
+my $output;
+my $message = '/^[0-9]+\% free \([0-9]+MiB out of [0-9]+MiB\)/';
+
+$result = NPTest->testCmd( "./check_swap $outputFormat" ); # Always OK
+cmp_ok( $result->return_code, "==", 0, "Always OK" );
+$output = decode_json($result->output);
+is($output->{'state'}, "OK", "State was correct");
+like($output->{'checks'}->[0]->{'output'}, $message, "Output was correct");
+
+$result = NPTest->testCmd( "./check_swap -w 1048576 -c 1048576 $outputFormat" ); # 1 MB free
+cmp_ok( $result->return_code, "==", 0, "Always OK" );
+$output = decode_json($result->output);
+is($output->{'state'}, "OK", "State was correct");
+like($output->{'checks'}->[0]->{'output'}, $message, "Output was correct");
+
+$result = NPTest->testCmd( "./check_swap -w 1% -c 1% $outputFormat" ); # 1% free
+cmp_ok( $result->return_code, "==", 0, "Always OK" );
+$output = decode_json($result->output);
+is($output->{'state'}, "OK", "State was correct");
+like($output->{'checks'}->[0]->{'output'}, $message, "Output was correct");
+
+$result = NPTest->testCmd( "./check_swap -w 100% -c 100% $outputFormat" ); # 100% (always critical)
+cmp_ok( $result->return_code, "==", 0, "Always OK" );
+$output = decode_json($result->output);
+is($output->{'state'}, "CRITICAL", "State was correct");
+like($output->{'checks'}->[0]->{'output'}, $message, "Output was correct");
+
+$result = NPTest->testCmd( "./check_swap -w 100% -c 1% $outputFormat" ); # 100% (always warn)
+cmp_ok( $result->return_code, "==", 0, "Always OK" );
+$output = decode_json($result->output);
+is($output->{'state'}, "WARNING", "State was correct");
+like($output->{'checks'}->[0]->{'output'}, $message, "Output was correct");
+
+$result = NPTest->testCmd( "./check_swap -w 100% $outputFormat" ); # 100% (single threshold, always warn)
+cmp_ok( $result->return_code, "==", 0, "Always OK" );
+$output = decode_json($result->output);
+is($output->{'state'}, "WARNING", "State was correct");
+like($output->{'checks'}->[0]->{'output'}, $message, "Output was correct");
+
+$result = NPTest->testCmd( "./check_swap -c 100% $outputFormat" ); # 100% (single threshold, always critical)
+cmp_ok( $result->return_code, "==", 0, "Always OK" );
+$output = decode_json($result->output);
+is($output->{'state'}, "CRITICAL", "State was correct");
+like($output->{'checks'}->[0]->{'output'}, $message, "Output was correct");
More information about the Commits
mailing list