summaryrefslogtreecommitdiffstats
path: root/plugins/t/check_jabber.t
blob: 1aaf812526a1af87ece2c4fae823030f2d93a515 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#! /usr/bin/perl -w -I ..
#
# Jabber Server Tests via check_jabber
#
#

use strict;
use Test::More;
use NPTest;

plan tests => 10;

my $host_tcp_jabber = getTestParameter( 
			"NP_HOST_TCP_JABBER",
			"A host providing the Jabber Service",
			"jabber.org"
			);

my $host_nonresponsive = getTestParameter(
			"NP_HOST_NONRESPONSIVE", 
			"The hostname of system not responsive to network requests",
			"10.0.0.1",
			);

my $hostname_invalid   = getTestParameter( 
			"NP_HOSTNAME_INVALID",
			"An invalid (not known to DNS) hostname",
			"nosuchhost",
			);


my $jabberOK = '/JABBER OK\s-\s\d+\.\d+\ssecond response time on port 5222/';

my $jabberUnresponsive = '/CRITICAL\s-\sSocket timeout after\s\d+\sseconds/';

my $jabberInvalid = '/JABBER CRITICAL - Invalid hostname, address or socket:\s.+/';

my $r;

SKIP: {
	skip "No jabber server defined", 6 unless $host_tcp_jabber;

	$r = NPTest->testCmd( "./check_jabber $host_tcp_jabber" );
	is( $r->return_code, 0, "Connected okay");
	like( $r->output, $jabberOK, "Output as expected" );

	$r = NPTest->testCmd( "./check_jabber -H $host_tcp_jabber -w 9 -c 9 -t 10" );
	is( $r->return_code, 0, "Connected okay, within limits" );
	like( $r->output, $jabberOK, "Output as expected" );
	
	$r = NPTest->testCmd( "./check_jabber $host_tcp_jabber -wt 9 -ct 9 -to 10" );
	is( $r->return_code, 0, "Old syntax okay" );
	like( $r->output, $jabberOK, "Output as expected" );

}

$r = NPTest->testCmd( "./check_jabber $host_nonresponsive" );
is( $r->return_code, 2, "Unresponsive host gives critical" );
like( $r->output, $jabberUnresponsive );

$r = NPTest->testCmd( "./check_jabber $hostname_invalid" );
is( $r->return_code, 2, "Invalid hostname gives critical" );
like( $r->output, $jabberInvalid );