SF.net SVN: nagiosplug: [1955] nagiosplug/trunk/plugins/tests/check_procs.t

[email protected]
Newsgroups gmane.network.nagios.plugins.cvs
Message-ID <[email protected]>
Revision: 1955
          http://nagiosplug.svn.sourceforge.net/nagiosplug/?rev=1955&view=rev
Author:   tonvoon
Date:     2008-03-18 03:59:55 -0700 (Tue, 18 Mar 2008)

Log Message:
-----------
Include test for check_procs, using input file

Added Paths:
-----------
    nagiosplug/trunk/plugins/tests/check_procs.t

Added: nagiosplug/trunk/plugins/tests/check_procs.t
===================================================================
--- nagiosplug/trunk/plugins/tests/check_procs.t	                        (rev 0)
+++ nagiosplug/trunk/plugins/tests/check_procs.t	2008-03-18 10:59:55 UTC (rev 1955)
@@ -0,0 +1,115 @@
+#! /usr/bin/perl -w -I ..
+#
+# Test check_procs using input files
+#
+
+use strict;
+use Test::More;
+use NPTest;
+
+if (-x "./check_procs") {
+	plan tests => 48;
+} else {
+	plan skip_all => "No check_procs compiled";
+}
+
+my $result;
+my $command = "./check_procs --input-file=tests/var/ps-axwo.darwin";
+
+$result = NPTest->testCmd( "$command" );
+is( $result->return_code, 0, "Run with no options" );
+like( $result->output, '/^PROCS OK: 95 processes$/', "Output correct" );
+
+$result = NPTest->testCmd( "$command -w 5" );
+is( $result->return_code, 1, "Checking > 5 processes" );
+like( $result->output, '/^PROCS WARNING: 95 processes$/', "Output correct" );
+
+$result = NPTest->testCmd( "$command -w 4 -c 44" );
+is( $result->return_code, 2, "Checking critical" );
+like( $result->output, '/^PROCS CRITICAL: 95 processes$/', "Output correct" );
+
+$result = NPTest->testCmd( "$command -w 100 -c 200" );
+is( $result->return_code, 0, "Checking no threshold breeched" );
+like( $result->output, '/^PROCS OK: 95 processes$/', "Output correct" );
+
+$result = NPTest->testCmd( "$command -C launchd -c 5" );
+is( $result->return_code, 2, "Checking processes filtered by command name" );
+like( $result->output, '/^PROCS CRITICAL: 6 processes with command name \'launchd\'$/', "Output correct" );
+
+$result = NPTest->testCmd( "$command -u 501 -w 39 -c 41" );
+is( $result->return_code, 1, "Checking processes filtered by userid" );
+like( $result->output, '/^PROCS WARNING: 40 processes with UID = 501 (.*)$/', "Output correct" );
+
+$result = NPTest->testCmd( "$command -C launchd -u 501" );
+is( $result->return_code, 0, "Checking processes filtered by command name and userid" );
+like( $result->output, '/^PROCS OK: 1 process with command name \'launchd\', UID = 501 (.*)$/', "Output correct" );
+
+$result = NPTest->testCmd( "$command -u -2 -w 2:2" );
+is( $result->return_code, 1, "Checking processes with userid=-2" );
+like( $result->output, '/^PROCS WARNING: 3 processes with UID = -2 \(nobody\)$/', "Output correct" );
+
+$result = NPTest->testCmd( "$command -u -2 -w 3:3" );
+is( $result->return_code, 0, "Checking processes with userid=-2 past threshold" );
+like( $result->output, '/^PROCS OK: 3 processes with UID = -2 \(nobody\)$/', "Output correct" );
+
+$result = NPTest->testCmd( "$command -u -2 -a usb" );
+is( $result->return_code, 0, "Checking processes with userid=-2 and usb in arguments" );
+like( $result->output, '/^PROCS OK: 1 process with UID = -2 \(nobody\), args \'usb\'/', "Output correct" );
+
+$result = NPTest->testCmd( "$command -u -2 -a UsB" );
+is( $result->return_code, 0, "Checking case sensitivity of args" );
+like( $result->output, '/^PROCS OK: 0 processes with UID = -2 \(nobody\), args \'UsB\'/', "Output correct" );
+
+$result = NPTest->testCmd( "$command --ereg-argument-array='mdworker.*501'" );
+is( $result->return_code, 0, "Checking regexp search of arguments" );
+is( $result->output, "PROCS OK: 1 process with regex args 'mdworker.*501'", "Output correct" );
+
+$result = NPTest->testCmd( "$command --vsz 1000000" );
+is( $result->return_code, 0, "Checking filter by VSZ" );
+like( $result->output, '/^PROCS OK: 24 processes with VSZ >= 1000000$/', "Output correct" );
+
+$result = NPTest->testCmd( "$command --rss 100000" );
+is( $result->return_code, 0, "Checking filter by RSS" );
+like( $result->output, '/^PROCS OK: 3 processes with RSS >= 100000$/', "Output correct" );
+
+$result = NPTest->testCmd( "$command -s S" );
+is( $result->return_code, 0, "Checking filter for sleeping processes" );
+like( $result->output, '/^PROCS OK: 44 processes with STATE = S/', "Output correct" );
+
+$result = NPTest->testCmd( "$command -s Z" );
+is( $result->return_code, 0, "Checking filter for zombies" );
+like( $result->output, '/^PROCS OK: 1 process with STATE = Z/', "Output correct" );
+
+$result = NPTest->testCmd( "$command -p 1 -c 30" );
+is( $result->return_code, 2, "Checking filter for parent id = 1" );
+like( $result->output, '/^PROCS CRITICAL: 39 processes with PPID = 1/', "Output correct" );
+
+$result = NPTest->testCmd( "$command -P 0.71" );
+is( $result->return_code, 0, "Checking filter for percentage cpu > 0.71" );
+is( $result->output, 'PROCS OK: 7 processes with PCPU >= 0.71', "Output correct" );
+
+$result = NPTest->testCmd( "$command -P 0.70" );
+is( $result->return_code, 0, "Checking filter for percentage cpu > 0.70" );
+is( $result->output, 'PROCS OK: 8 processes with PCPU >= 0.70', "Output correct" );
+
+$result = NPTest->testCmd( "$command --metric=CPU -w 8" );
+is( $result->return_code, 1, "Checking against metric of CPU > 8" );
+is( $result->output, 'CPU WARNING: 1 warn out of 95 processes', "Output correct" );
+
+# TODO: Because of a conversion to int, if CPU is 1.45%, will not alert, but 2.01% will.
+$result = NPTest->testCmd( "$command --metric=CPU -w 1 -u 501 -v" );
+is( $result->return_code, 1, "Checking against metric of CPU > 1 with uid=501 - TODO" );
+is( $result->output, 'CPU WARNING: 2 warn out of 40 processes with UID = 501 (tonvoon) [Skype, PubSubAgent]', "Output correct" );
+
+$result = NPTest->testCmd( "$command --metric=VSZ -w 1200000 -v" );
+is( $result->return_code, 1, "Checking against VSZ > 1.2GB" );
+is( $result->output, 'VSZ WARNING: 4 warn out of 95 processes [WindowServer, Safari, Mail, Skype]', "Output correct" );
+
+$result = NPTest->testCmd( "$command --metric=VSZ -w 1200000 -v" );
+is( $result->return_code, 1, "Checking against VSZ > 1.2GB" );
+is( $result->output, 'VSZ WARNING: 4 warn out of 95 processes [WindowServer, Safari, Mail, Skype]', "Output correct" );
+
+$result = NPTest->testCmd( "$command --metric=RSS -c 70000 -v" );
+is( $result->return_code, 2, "Checking against RSS > 70MB" );
+is( $result->output, 'RSS CRITICAL: 5 crit, 0 warn out of 95 processes [WindowServer, SystemUIServer, Safari, Mail, Safari]', "Output correct" );
+


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.