~tonyyarusso/+junk/nagios-agent-ubuntu

« back to all changes in this revision

Viewing changes to subcomponents/extraplugins/check_postgres-2.12.0/t/02_query_runtime.t

  • Committer: Tony Yarusso
  • Date: 2010-07-21 19:14:45 UTC
  • Revision ID: tyarusso@ubuntu-desktop-20100721191445-y222s2cqi0ud65s0
Initial commit to bzr

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!perl
 
2
 
 
3
## Test the "query_runtime" action
 
4
 
 
5
use 5.006;
 
6
use strict;
 
7
use warnings;
 
8
use Data::Dumper;
 
9
use Test::More tests => 17;
 
10
use lib 't','.';
 
11
use CP_Testing;
 
12
 
 
13
use vars qw/$dbh $result $t $host $dbname/;
 
14
 
 
15
my $testtbl = 'test_query_runtime';
 
16
my $testview = $testtbl . '_view';
 
17
 
 
18
my $cp = CP_Testing->new( {default_action => 'query_runtime'} );
 
19
 
 
20
$dbh = $cp->test_database_handle();
 
21
$dbname = $cp->get_dbname;
 
22
$host = $cp->get_host();
 
23
 
 
24
my $S = q{Action 'query_runtime'};
 
25
my $label = 'POSTGRES_QUERY_RUNTIME';
 
26
 
 
27
$cp->drop_table_if_exists($testtbl);
 
28
$cp->drop_view_if_exists($testview);
 
29
 
 
30
$dbh->do(qq{CREATE TABLE "$testtbl" ("a" integer)}) or die $dbh->errstr;
 
31
$dbh->commit;
 
32
 
 
33
$t = qq{$S self-identifies correctly};
 
34
$result = $cp->run(qq{-w 0 --queryname=$testtbl});
 
35
like ($result, qr{^$label}, $t);
 
36
 
 
37
$t = qq{$S identifies database};
 
38
like ($result, qr{DB "$dbname"}, $t);
 
39
 
 
40
$t = qq{$S identifies host};
 
41
like ($result, qr{host:$host}, $t);
 
42
 
 
43
$t = qq{$S accepts valid -w input};
 
44
for ('1 second',
 
45
     '1 minute',
 
46
     '1 hour',
 
47
     '1 day'
 
48
    ) {
 
49
   like ($cp->run(qq{--queryname=$testtbl -w "$_"}), qr/^$label/, $t . " ($_)");
 
50
}
 
51
 
 
52
$t = qq{$S rejects invalid -w input};
 
53
for ('-1 second',
 
54
     'abc'
 
55
    ) {
 
56
   like($cp->run(qq{--queryname=$testtbl -w "$_"}), qr/^ERROR:.*?must be a valid time/, $t . " ($_)");
 
57
}
 
58
 
 
59
$dbh->do(qq{INSERT INTO "$testtbl" SELECT a::int FROM generate_series(1,5000) a});
 
60
$dbh->commit;
 
61
 
 
62
$t = qq{$S measures simple table};
 
63
like ($cp->run(qq{--queryname=$testtbl -w 10}), qr{$label OK: .*? query runtime: \d+\.\d* }, $t);
 
64
 
 
65
$t .= ' (MRTG)';
 
66
like ($cp->run(qq{--output=mrtg --queryname=$testtbl -w 10}), qr{\d+\.\d+\n0\n\nDB: $dbname\n}, $t);
 
67
 
 
68
$t = qq{$S expires simple table};
 
69
like ($cp->run(qq{--queryname=$testtbl -w 0}), qr{$label WARNING: .*? query runtime: \d+\.\d* }, $t);
 
70
 
 
71
$t .= ' (MRTG)';
 
72
like ($cp->run(qq{--output=mrtg --queryname=$testtbl -w 0}), qr{\d+\.\d+\n0\n\nDB: $dbname\n}, $t);
 
73
 
 
74
$dbh->do(qq{CREATE VIEW $testview AS SELECT 123});
 
75
$dbh->commit;
 
76
 
 
77
$t = qq{$S measures view};
 
78
like ($cp->run(qq{--queryname=$testview -w 0}), qr{$label WARNING: .*query runtime: \d+\.\d* }, $t);
 
79
 
 
80
$t .= ' (MRTG)';
 
81
like ($cp->run(qq{--output=mrtg --queryname=$testview -w 20}), qr{\d+\.\d+\n0\n\nDB: $dbname\n}, $t);
 
82
 
 
83
$t = qq{$S expires view};
 
84
like ($cp->run(qq{--queryname=$testview -w 0}), qr{$label WARNING: .*query runtime: \d+\.\d* }, $t);
 
85
 
 
86
$t .= ' (MRTG)';
 
87
like ($cp->run(qq{--output=mrtg --queryname=$testview -w 0}), qr{\d+\.\d+\n0\n\nDB: $dbname\n}, $t);
 
88
 
 
89
exit;