[check_postgres] [commit] Last of the testing tweaks. For now.
check_postgres at bucardo.org
check_postgres at bucardo.org
Fri May 1 13:39:53 UTC 2009
Committed by Greg Sabino Mullane <greg at endpoint.com>
Last of the testing tweaks. For now.
---
check_postgres.pl.html | 13 ++++----
index.html | 2 +-
t/02_autovac_freeze.t | 3 +-
t/02_backends.t | 74 +++++++++++++++++++++++----------------------
t/02_bloat.t | 1 +
t/02_checkpoint.t | 13 ++++----
t/02_connection.t | 5 ++-
t/02_custom_query.t | 2 +-
t/02_dbstats.t | 1 +
t/02_disabled_triggers.t | 2 +-
t/02_disk_space.t | 4 ++-
t/02_fsm_pages.t | 1 -
t/02_last_analyze.t | 5 +--
t/02_last_vacuum.t | 5 ++-
t/02_listener.t | 5 ++-
t/02_locks.t | 21 +++++++------
t/02_logfile.t | 3 +-
t/02_prepared_txns.t | 1 -
t/02_query_runtime.t | 4 +-
t/02_query_time.t | 2 +-
t/02_relation_size.t | 4 +-
t/02_replicate_row.t | 13 ++++----
t/02_settings_checksum.t | 4 ++-
t/02_timesync.t | 4 +-
t/02_txn_idle.t | 2 +-
t/02_txn_time.t | 2 +-
t/02_txn_wraparound.t | 2 +-
t/02_version.t | 39 ++++++++++++------------
t/99_perlcritic.t | 1 +
t/CP_Testing.pm | 2 +
30 files changed, 127 insertions(+), 113 deletions(-)
diff --git a/check_postgres.pl.html b/check_postgres.pl.html
index a6595c7..97a4a4f 100644
--- a/check_postgres.pl.html
+++ b/check_postgres.pl.html
@@ -1127,20 +1127,19 @@ time and the database time. The fourth line returns the name of the database.</p
</p>
<h2><a name="txn_wraparound"><strong>txn_wraparound</strong></a></h2>
<p>(<code>symlink: check_postgres_txn_wraparound</code>) Checks how close to transaction wraparound one or more databases are getting.
-The <em>--warning</em> and <em>--critical</em> options indicate the number of transactions
-left, and must be a positive integer. If either option is not given, the default
-values of 1.3 and 1.4 billion are used. There is no need to run this command
-more than once per database cluster. For a more detailed discussion of what this
-number represents and what to do about it, please visit the page
+The <em>--warning</em> and <em>--critical</em> options indicate the number of transactions done, and must be a positive integer.
+If either option is not given, the default values of 1.3 and 1.4 billion are used. There is no need to run this command
+more than once per database cluster. For a more detailed discussion of what this number represents and what to do about
+it, please visit the page
<a href="http://www.postgresql.org/docs/current/static/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND">http://www.postgresql.org/docs/current/static/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND</a></p>
<p>The warning and critical values can have underscores in the number for legibility, as Perl does.</p>
<p>Example 1: Check the default values for the localhost database</p>
<pre>
check_postgres_txn_wraparound --host=localhost</pre>
-<p>Example 2: Check port 6000 and give a critical at 1.7 billion transactions left:</p>
+<p>Example 2: Check port 6000 and give a critical when 1.7 billion transactions are hit:</p>
<pre>
check_postgres_txn_wraparound --port=6000 --critical=1_700_000_000</pre>
-<p>For MRTG output, returns the highest number of transactions for all databases on line one,
+<p>For MRTG output, returns the highest number of transactions for all databases on line one,
while line 4 indicates which database it is.</p>
<p>
</p>
diff --git a/index.html b/index.html
index e7331f1..7d4a806 100644
--- a/index.html
+++ b/index.html
@@ -21,7 +21,7 @@ h1 {
<h1>check_postgres.pl</h1>
-<p><b>check_postgres.pl</b> is a script for checking the state of one or more Postgres databases and reporting back in a Nagios-friendly manner. It was developed by Greg Sabino Mullane of <a href="http://www.endpoint.com/">End Point Corporation</a> and is BSD-licensed. The latest version is <b>2.8.0</b>, and was released on April 28, 2009.</p>
+<p><b>check_postgres.pl</b> is a script for checking the state of one or more Postgres databases and reporting back in a Nagios-friendly manner. It was developed by Greg Sabino Mullane of <a href="http://www.endpoint.com/">End Point Corporation</a> and is BSD-licensed. The latest version is <b>2.8.0</b>, and was released on April 30, 2009.</p>
<ul>
<li><a href="/check_postgres/check_postgres.pl.html">Documentation for check_postgres 2.8.0</a></li>
diff --git a/t/02_autovac_freeze.t b/t/02_autovac_freeze.t
index a442628..2b616ed 100644
--- a/t/02_autovac_freeze.t
+++ b/t/02_autovac_freeze.t
@@ -20,9 +20,8 @@ $dbname = $cp->get_dbname;
$host = $cp->get_host();
my $ver = $dbh->{pg_server_version};
-my $label = 'POSTGRES_AUTOVAC_FREEZE';
-
my $S = q{Action 'autovac_freeze'};
+my $label = 'POSTGRES_AUTOVAC_FREEZE';
SKIP:
{
diff --git a/t/02_backends.t b/t/02_backends.t
index 3420a5f..3dc1d74 100644
--- a/t/02_backends.t
+++ b/t/02_backends.t
@@ -16,6 +16,9 @@ my $cp = CP_Testing->new( {default_action => 'backends'} );
$dbh = $cp->test_database_handle();
+my $S = q{Action 'backends'};
+my $label = 'POSTGRES_BACKENDS';
+
my $ver = $dbh->{pg_server_version};
my $goodver = $ver >= 80200 ? 1 : 0;
@@ -31,23 +34,22 @@ $host = $cp->get_host();
$result = $cp->run();
-my $S = q{Action 'backends'};
$t=qq{$S returned expected text and OK value};
-like ($result, qr{^POSTGRES_BACKENDS OK:}, $t);
+like ($result, qr{^$label OK:}, $t);
$t=qq{$S returned correct host name};
-like ($result, qr{^POSTGRES_BACKENDS OK: \(host:$host\)}, $t);
+like ($result, qr{^$label OK: \(host:$host\)}, $t);
$t=qq{$S returned correct connection count};
SKIP: {
$goodver or skip 'Cannot test backends completely with older versions of Postgres', 3;
- like ($result, qr{^POSTGRES_BACKENDS OK: \(host:$host\) 2 of 10 connections}, $t);
+ like ($result, qr{^$label OK: \(host:$host\) 2 of 10 connections}, $t);
$t=qq{$S returned correct percentage};
- like ($result, qr{^POSTGRES_BACKENDS OK: \(host:$host\) 2 of 10 connections \(20%\)}, $t);
+ like ($result, qr{^$label OK: \(host:$host\) 2 of 10 connections \(20%\)}, $t);
$t=qq{$S returned correct performance data};
like ($result, qr{ \| time=(\d\.\d\d) ardala=0 beedeebeedee=0 postgres=2 template0=0 template1=0\s$}, $t);
@@ -81,65 +83,65 @@ like ($cp->run('-c -10%'), qr{^ERROR: Cannot specify a negative percent}, $t);
$t=qq{$S with the 'noidle' option returns expected result};
my $num = $goodver ? 2 : 1;
-like ($cp->run('-noidle'), qr{^POSTGRES_BACKENDS OK:.+ $num of 10 connections}, $t);
+like ($cp->run('-noidle'), qr{^$label OK:.+ $num of 10 connections}, $t);
$dbh2 = $cp->get_fresh_dbh();
$dbh2->do('SELECT 123');
$num++ if $goodver;
-like ($cp->run('-noidle'), qr{^POSTGRES_BACKENDS OK:.+ $num of 10 connections}, $t);
+like ($cp->run('-noidle'), qr{^$label OK:.+ $num of 10 connections}, $t);
$dbh2->commit();
$num = $goodver ? 2 : '(?:1|2)';
-like ($cp->run('-noidle'), qr{^POSTGRES_BACKENDS OK:.+ $num of 10 connections}, $t);
+like ($cp->run('-noidle'), qr{^$label OK:.+ $num of 10 connections}, $t);
$t=qq{$S has critical option trump the warning option};
-like ($cp->run('-w 1 -c 1'), qr{^POSTGRES_BACKENDS CRITICAL}, $t);
-like ($cp->run('--critical=1 --warning=0'), qr{^POSTGRES_BACKENDS CRITICAL}, $t);
+like ($cp->run('-w 1 -c 1'), qr{^$label CRITICAL}, $t);
+like ($cp->run('--critical=1 --warning=0'), qr{^$label CRITICAL}, $t);
$t=qq{$S works with warning option as an absolute number};
-like ($cp->run('-w 2'), qr{^POSTGRES_BACKENDS WARNING}, $t);
+like ($cp->run('-w 2'), qr{^$label WARNING}, $t);
$num = $goodver ? 3 : 2;
-like ($cp->run("-w $num"), qr{^POSTGRES_BACKENDS WARNING}, $t);
-like ($cp->run('-w 4'), qr{^POSTGRES_BACKENDS OK}, $t);
+like ($cp->run("-w $num"), qr{^$label WARNING}, $t);
+like ($cp->run('-w 4'), qr{^$label OK}, $t);
$t=qq{$S works with warning option as an percentage};
-like ($cp->run('-w 20%'), qr{^POSTGRES_BACKENDS WARNING}, $t);
-like ($cp->run("-w ${num}0%"), qr{^POSTGRES_BACKENDS WARNING}, $t);
-like ($cp->run('-w 40%'), qr{^POSTGRES_BACKENDS OK}, $t);
+like ($cp->run('-w 20%'), qr{^$label WARNING}, $t);
+like ($cp->run("-w ${num}0%"), qr{^$label WARNING}, $t);
+like ($cp->run('-w 40%'), qr{^$label OK}, $t);
$t=qq{$S works with warning option as a negative number};
-like ($cp->run('-w -6'), qr{^POSTGRES_BACKENDS WARNING}, $t);
-like ($cp->run('-w -7'), qr{^POSTGRES_BACKENDS WARNING}, $t);
+like ($cp->run('-w -6'), qr{^$label WARNING}, $t);
+like ($cp->run('-w -7'), qr{^$label WARNING}, $t);
$num = $goodver ? 8 : 9;
-like ($cp->run("-w -$num"), qr{^POSTGRES_BACKENDS OK}, $t);
+like ($cp->run("-w -$num"), qr{^$label OK}, $t);
$t=qq{$S works with critical option as an absolute number};
-like ($cp->run('-c 2'), qr{^POSTGRES_BACKENDS CRITICAL}, $t);
+like ($cp->run('-c 2'), qr{^$label CRITICAL}, $t);
$num = $goodver ? 3 : 2;
-like ($cp->run("-c $num"), qr{^POSTGRES_BACKENDS CRITICAL}, $t);
-like ($cp->run('-c 4'), qr{^POSTGRES_BACKENDS OK}, $t);
+like ($cp->run("-c $num"), qr{^$label CRITICAL}, $t);
+like ($cp->run('-c 4'), qr{^$label OK}, $t);
$t=qq{$S works with critical option as an percentage};
-like ($cp->run('-c 20%'), qr{^POSTGRES_BACKENDS CRITICAL}, $t);
-like ($cp->run("-c ${num}0%"), qr{^POSTGRES_BACKENDS CRITICAL}, $t);
-like ($cp->run('-c 40%'), qr{^POSTGRES_BACKENDS OK}, $t);
+like ($cp->run('-c 20%'), qr{^$label CRITICAL}, $t);
+like ($cp->run("-c ${num}0%"), qr{^$label CRITICAL}, $t);
+like ($cp->run('-c 40%'), qr{^$label OK}, $t);
$t=qq{$S works with critical option as a negative number};
-like ($cp->run('-c -6'), qr{^POSTGRES_BACKENDS CRITICAL}, $t);
-like ($cp->run('-c -7'), qr{^POSTGRES_BACKENDS CRITICAL}, $t);
+like ($cp->run('-c -6'), qr{^$label CRITICAL}, $t);
+like ($cp->run('-c -7'), qr{^$label CRITICAL}, $t);
$num = $goodver ? 8 : 9;
-like ($cp->run("-c -$num"), qr{^POSTGRES_BACKENDS OK}, $t);
+like ($cp->run("-c -$num"), qr{^$label OK}, $t);
$t=qq{$S works when no items caught by pg_stat_activity};
$cp->drop_schema_if_exists();
$cp->create_fake_pg_table('pg_stat_activity');
-like ($cp->run(), qr{^POSTGRES_BACKENDS OK: .+No connections}, $t);
+like ($cp->run(), qr{^$label OK: .+No connections}, $t);
$t=qq{$S returns correct MRTG output when no rows};
is ($cp->run('--output=MRTG'), qq{0\n0\n\nDB=postgres Max connections=10\n}, $t);
$t=qq{$S fails as expected when max_connections cannot be determined};
$cp->create_fake_pg_table('pg_settings');
-like ($cp->run(), qr{^POSTGRES_BACKENDS UNKNOWN: .+max_connections}, $t);
+like ($cp->run(), qr{^$label UNKNOWN: .+max_connections}, $t);
$cp->drop_schema_if_exists();
$t=qq{$S returns correct MRTG output when rows found};
@@ -147,31 +149,31 @@ $num = $goodver ? 3 : 2;
is ($cp->run('--output=MRTG'), qq{$num\n0\n\nDB=postgres Max connections=10\n}, $t);
$t=qq{$S works when include forces no matches};
-like ($cp->run('--include=foobar'), qr{POSTGRES_BACKENDS OK: .+No connections}, $t);
+like ($cp->run('--include=foobar'), qr{^$label OK: .+No connections}, $t);
SKIP: {
$goodver or skip 'Cannot test backends completely with older versions of Postgres', 1;
$t=qq{$S works when include has valid database};
- like ($cp->run('--include=postgres'), qr{POSTGRES_BACKENDS OK: .+3 of 10}, $t);
+ like ($cp->run('--include=postgres'), qr{^$label OK: .+3 of 10}, $t);
}
$t=qq{$S works when exclude forces no matches};
-like ($cp->run('--exclude=postgres'), qr{POSTGRES_BACKENDS OK: .+No connections}, $t);
+like ($cp->run('--exclude=postgres'), qr{^$label OK: .+No connections}, $t);
SKIP: {
$goodver or skip 'Cannot test backends completely with older versions of Postgres', 4;
$t=qq{$S works when exclude excludes nothing};
- like ($cp->run('--exclude=foobar'), qr{POSTGRES_BACKENDS OK: .+3 of 10}, $t);
+ like ($cp->run('--exclude=foobar'), qr{^$label OK: .+3 of 10}, $t);
$t=qq{$S works when include and exclude make a match};
- like ($cp->run('--exclude=postgres --include=postgres'), qr{POSTGRES_BACKENDS OK: .+3 of 10}, $t);
+ like ($cp->run('--exclude=postgres --include=postgres'), qr{^$label OK: .+3 of 10}, $t);
$t=qq{$S works when include and exclude make a match};
- like ($cp->run('--include=postgres --exclude=postgres'), qr{POSTGRES_BACKENDS OK: .+3 of 10}, $t);
+ like ($cp->run('--include=postgres --exclude=postgres'), qr{^$label OK: .+3 of 10}, $t);
$t=qq{$S returned correct performance data with include};
like ($cp->run('--include=postgres'), qr{ \| time=(\d\.\d\d) ardala=0 beedeebeedee=0 postgres=3}, $t);
diff --git a/t/02_bloat.t b/t/02_bloat.t
index 1380797..224e1df 100644
--- a/t/02_bloat.t
+++ b/t/02_bloat.t
@@ -18,6 +18,7 @@ $dbh = $cp->test_database_handle();
my $S = q{Action 'bloat'};
my $label = 'POSTGRES_BLOAT';
+
my $tname = 'cp_bloat_test';
$t=qq{$S fails when called with an invalid option};
diff --git a/t/02_checkpoint.t b/t/02_checkpoint.t
index e00813f..a83c051 100644
--- a/t/02_checkpoint.t
+++ b/t/02_checkpoint.t
@@ -17,6 +17,7 @@ my $cp = CP_Testing->new( {default_action => 'checkpoint'} );
$dbh = $cp->test_database_handle();
my $S = q{Action 'checkpoint'};
+my $label = 'POSTGRES_CHECKPOINT';
$t=qq{$S fails when called with an invalid option};
like ($cp->run('foobar=12'), qr{^\s*Usage:}, $t);
@@ -32,28 +33,28 @@ like ($cp->run('-c foo'), qr{ERROR: .+'critical'.+valid time}, $t);
$t=qq{$S fails when called without a datadir option and PGDATA is not set};
delete $ENV{PGDATA};
-like ($cp->run('-c 10'), qr{ERROR: Must supply a --datadir}, $t);
+like ($cp->run('-c 10'), qr{^ERROR: Must supply a --datadir}, $t);
$t=qq{$S fails when called with an invalid datadir option and PGDATA is not set};
-like ($cp->run('-c 10 --datadir=foobar'), qr{ERROR: Invalid data_directory}, $t);
+like ($cp->run('-c 10 --datadir=foobar'), qr{^ERROR: Invalid data_directory}, $t);
my $host = $cp->get_host();
$t=qq{$S fails when called against a non datadir datadir};
-like ($cp->run(qq{-c 10 --datadir="$host"}), qr{ERROR:.+could not read the given data directory}, $t);
+like ($cp->run(qq{-c 10 --datadir="$host"}), qr{^ERROR:.+could not read the given data directory}, $t);
$t=qq{$S works when called for a recent checkpoint};
my $dbh = $cp->get_dbh();
$dbh->do('CHECKPOINT');
$dbh->commit();
$host =~ s/socket$//;
-like ($cp->run(qq{-w 20 --datadir="$host"}), qr{POSTGRES_CHECKPOINT OK}, $t);
+like ($cp->run(qq{-w 20 --datadir="$host"}), qr{^$label OK}, $t);
$t=qq{$S returns a warning when checkpoint older than warning option};
sleep 2;
-like ($cp->run(qq{-w 1 --datadir="$host"}), qr{WARNING:}, $t);
+like ($cp->run(qq{-w 1 --datadir="$host"}), qr{^$label WARNING:}, $t);
$t=qq{$S returns a critical when checkpoint older than critical option};
-like ($cp->run(qq{-c 1 --datadir="$host"}), qr{CRITICAL:}, $t);
+like ($cp->run(qq{-c 1 --datadir="$host"}), qr{^$label CRITICAL:}, $t);
$t=qq{$S returns the correct number of seconds};
like ($cp->run(qq{-c 1 --datadir="$host"}), qr{was \d seconds ago}, $t);
diff --git a/t/02_connection.t b/t/02_connection.t
index 742a0f9..7719e27 100644
--- a/t/02_connection.t
+++ b/t/02_connection.t
@@ -23,9 +23,10 @@ $SQL = 'SELECT version()';
$result = $cp->run();
my $S = q{Action 'connection'};
+my $label = 'POSTGRES_CONNECTION';
$t=qq{$S returned expected text and OK value};
-like ($result, qr{^POSTGRES_CONNECTION OK:}, $t);
+like ($result, qr{^$label OK:}, $t);
$t=qq{$S returned correct performance data};
like ($result, qr{ \| time=(?:\d\.\d\d)\s$}, $t);
@@ -51,7 +52,7 @@ is ($cp->run('--output=MRTG'), qq{1\n0\n\n\n}, $t);
$cp->fake_version('ABC');
$t=qq{$S fails if there's a fake version function};
-like ($cp->run(), qr{^POSTGRES_CONNECTION UNKNOWN:}, $t);
+like ($cp->run(), qr{^$label UNKNOWN:}, $t);
$cp->reset_path();
exit;
diff --git a/t/02_custom_query.t b/t/02_custom_query.t
index 339f2ad..6cf20af 100644
--- a/t/02_custom_query.t
+++ b/t/02_custom_query.t
@@ -21,9 +21,9 @@ $dbh = $cp->test_database_handle();
$dbh->{AutoCommit} = 1;
$dbname = $cp->get_dbname;
$host = $cp->get_host();
-my $label = 'POSTGRES_CUSTOM_QUERY';
my $S = q{Action 'custom_query'};
+my $label = 'POSTGRES_CUSTOM_QUERY';
$t = qq{$S self-identifies correctly};
$result = $cp->run(qq{-w 0 --query="$good_query"});
diff --git a/t/02_dbstats.t b/t/02_dbstats.t
index f069101..b2f2e02 100644
--- a/t/02_dbstats.t
+++ b/t/02_dbstats.t
@@ -48,3 +48,4 @@ for (qw(backends commits rollbacks read hit idxscan idxtupread idxtupfetch idxbl
like($result, qr{\b$_:\d+\b}, $t1 . $_);
}
+exit;
diff --git a/t/02_disabled_triggers.t b/t/02_disabled_triggers.t
index 8d40afe..d183d3a 100644
--- a/t/02_disabled_triggers.t
+++ b/t/02_disabled_triggers.t
@@ -20,9 +20,9 @@ my $cp = CP_Testing->new( {default_action => 'disabled_triggers'} );
$dbh = $cp->test_database_handle();
$dbname = $cp->get_dbname;
$host = $cp->get_host();
-my $label = 'POSTGRES_DISABLED_TRIGGERS';
my $S = q{Action 'disabled_triggers'};
+my $label = 'POSTGRES_DISABLED_TRIGGERS';
my $ver = $dbh->{pg_server_version};
if ($ver < 80100) {
diff --git a/t/02_disk_space.t b/t/02_disk_space.t
index 0f1a48a..3cae08f 100644
--- a/t/02_disk_space.t
+++ b/t/02_disk_space.t
@@ -18,9 +18,9 @@ $dbh = $cp->test_database_handle();
$dbh->{AutoCommit} = 1;
$dbname = $cp->get_dbname;
$host = $cp->get_host();
-my $label = q{POSTGRES_DISK_SPACE};
my $S = q{Action 'disk_space'};
+my $label = q{POSTGRES_DISK_SPACE};
$t = qq{$S identifies self};
$result = $cp->run('-w 999z');
@@ -43,3 +43,5 @@ like ($cp->run('-w 1b'), qr{$label WARNING:}, $t);
$t = qq{$S reports MRTG output};
like ($cp->run('--output=mrtg'), qr{\A\d+\n0\n\n/.*\n}, $t);
+
+exit;
diff --git a/t/02_fsm_pages.t b/t/02_fsm_pages.t
index 5aa08bd..dd14686 100644
--- a/t/02_fsm_pages.t
+++ b/t/02_fsm_pages.t
@@ -68,7 +68,6 @@ if ($ver >= 80400) {
exit;
}
-
$t=qq{$S gives normal output for empty tables};
like ($cp->run('--warning=10%'), qr{^$label OK: .+fsm page slots used: 0 of \d+}, $t);
diff --git a/t/02_last_analyze.t b/t/02_last_analyze.t
index a3d08c1..dccbd32 100644
--- a/t/02_last_analyze.t
+++ b/t/02_last_analyze.t
@@ -21,9 +21,8 @@ $dbname = $cp->get_dbname;
$host = $cp->get_host();
my $ver = $dbh->{pg_server_version};
-my $label = 'POSTGRES_LAST_ANALYZE';
-
my $S = q{Action 'last_analyze'};
+my $label = 'POSTGRES_LAST_ANALYZE';
SKIP:
{
@@ -64,7 +63,7 @@ $dbh->do(qq{CREATE TABLE $testtbl AS SELECT 123::INTEGER AS a FROM generate_seri
$dbh->commit();
$t = qq{$S correctly finds no matching tables};
-like ($cp->run("-w 0 --exclude=~.* --include=$testtbl"),
+like ($cp->run("-w 0 --include=$testtbl"),
qr{No matching tables found due to exclusion}, $t);
$t = qq{$S sees a recent ANALYZE};
diff --git a/t/02_last_vacuum.t b/t/02_last_vacuum.t
index 3761c7d..38acd96 100644
--- a/t/02_last_vacuum.t
+++ b/t/02_last_vacuum.t
@@ -21,9 +21,8 @@ $dbname = $cp->get_dbname;
$host = $cp->get_host();
my $ver = $dbh->{pg_server_version};
-my $label = 'POSTGRES_LAST_VACUUM';
-
my $S = q{Action 'last_vacuum'};
+my $label = 'POSTGRES_LAST_VACUUM';
SKIP:
{
@@ -60,6 +59,7 @@ like ($cp->run(q{-w 0 --includeuser=gandalf}), qr{No matching.*user}, $t);
$dbh->{AutoCommit} = 1;
$dbh->do('VACUUM');
+$dbh->{AutoCommit} = 0;
$cp->drop_table_if_exists($testtbl);
$dbh->do(qq{CREATE TABLE $testtbl AS SELECT 123::INTEGER AS a FROM generate_series(1,200000)});
@@ -68,6 +68,7 @@ like ($cp->run("-w 0 --exclude=~.* --include=$testtbl"),
$t = qq{$S sees a recent VACUUM};
$dbh->do("DELETE FROM $testtbl");
+$dbh->{AutoCommit} = 1;
$dbh->do('VACUUM');
sleep 1;
diff --git a/t/02_listener.t b/t/02_listener.t
index cd47b34..cb07691 100644
--- a/t/02_listener.t
+++ b/t/02_listener.t
@@ -20,11 +20,12 @@ $host = $cp->get_host();
$dbname = $cp->get_dbname();
my $S = q{Action 'listener'};
+my $label = 'POSTGRES_LISTENER';
$result = $cp->run('-w foo');
$t = qq{$S returned expected text and warning};
-like ($result, qr{^POSTGRES_LISTENER WARNING:}, $t);
+like ($result, qr{^$label WARNING:}, $t);
$t = qq{$S returned correct host name};
like ($result, qr{\(host:$host\)}, $t);
@@ -39,7 +40,7 @@ $dbh->do(q{LISTEN "FOO"}) or die $dbh->errstr;
$dbh->commit;
$t = qq{$S returned critical as expected<};
-like ($cp->run('-c nomatch'), qr{^POSTGRES_LISTENER CRITICAL}, $t);
+like ($cp->run('-c nomatch'), qr{^$label CRITICAL}, $t);
$t = qq{$S found one listener via explicit name};
like ($cp->run('-w FOO'), qr{listeners found: 1\b}, $t);
diff --git a/t/02_locks.t b/t/02_locks.t
index 1cb3ce3..b9d8470 100644
--- a/t/02_locks.t
+++ b/t/02_locks.t
@@ -17,6 +17,7 @@ my $cp = CP_Testing->new( {default_action => 'locks' } );
$dbh = $cp->test_database_handle();
my $S = q{Action 'locks'};
+my $label = 'POSTGRES_LOCKS';
$t=qq{$S fails when called with an invalid option};
like ($cp->run('foobar=12'), qr{^\s*Usage:}, $t);
@@ -37,40 +38,40 @@ $fakelock_sth->execute($dboid,'Exclusive','t');
$dbh->commit();
$t=qq{$S returns correct OK message};
-like ($cp->run('--critical=100'), qr{POSTGRES_LOCKS OK.*total=1 }, $t);
+like ($cp->run('--critical=100'), qr{^$label OK.*total=1 }, $t);
$t=qq{$S returns correct warning message};
-like ($cp->run('--warning=1'), qr{POSTGRES_LOCKS WARNING.*total locks: 1 }, $t);
+like ($cp->run('--warning=1'), qr{^$label WARNING.*total locks: 1 }, $t);
$t=qq{$S returns correct critical message};
-like ($cp->run('--critical=1'), qr{POSTGRES_LOCKS CRITICAL.*total locks: 1 }, $t);
+like ($cp->run('--critical=1'), qr{^$label CRITICAL.*total locks: 1 }, $t);
$t=qq{$S returns correct OK message for specific lock type check};
-like ($cp->run('--critical="total=10;exclusive=3"'), qr{POSTGRES_LOCKS OK.*total=1 }, $t);
+like ($cp->run('--critical="total=10;exclusive=3"'), qr{^$label OK.*total=1 }, $t);
$t=qq{$S returns correct OK message for specific lock type check};
-like ($cp->run('--critical="total=10;foobar=3"'), qr{POSTGRES_LOCKS OK.*total=1 }, $t);
+like ($cp->run('--critical="total=10;foobar=3"'), qr{^$label OK.*total=1 }, $t);
$t=qq{$S returns correct warning message for specific lock type check};
-like ($cp->run('--warning="total=10;exclusive=1"'), qr{POSTGRES_LOCKS WARNING.*total "exclusive" locks: 1 }, $t);
+like ($cp->run('--warning="total=10;exclusive=1"'), qr{^$label WARNING.*total "exclusive" locks: 1 }, $t);
$t=qq{$S returns correct critical message for specific lock type check};
-like ($cp->run('--critical="total=10;exclusive=1"'), qr{POSTGRES_LOCKS CRITICAL.*total "exclusive" locks: 1 }, $t);
+like ($cp->run('--critical="total=10;exclusive=1"'), qr{^$label CRITICAL.*total "exclusive" locks: 1 }, $t);
$t=qq{$S returns correct MRTG output};
is ($cp->run('--output=MRTG'), qq{1\n0\n\nDB: postgres\n}, $t);
$t=qq{$S returns correct OK message for 'waiting' option};
-like ($cp->run('--warning="waiting=1"'), qr{POSTGRES_LOCKS OK.*total=1 }, $t);
+like ($cp->run('--warning="waiting=1"'), qr{^$label OK.*total=1 }, $t);
$t=qq{$S returns correct warning message for 'waiting' option};
$fakelock_sth->execute($dboid,'Exclusive','f');
$dbh->commit();
-like ($cp->run('--warning="waiting=1"'), qr{POSTGRES_LOCKS WARNING.*total "waiting" locks: 1 }, $t);
+like ($cp->run('--warning="waiting=1"'), qr{^$label WARNING.*total "waiting" locks: 1 }, $t);
$t=qq{$S returns correct multiple item output};
like ($cp->run('--warning="waiting=1;exclusive=2"'),
- qr{POSTGRES_LOCKS WARNING.*total "waiting" locks: 1 \* total "exclusive" locks: 2 }, $t);
+ qr{^$label WARNING.*total "waiting" locks: 1 \* total "exclusive" locks: 2 }, $t);
$cp->drop_schema_if_exists();
diff --git a/t/02_logfile.t b/t/02_logfile.t
index 239cbb1..fff2419 100644
--- a/t/02_logfile.t
+++ b/t/02_logfile.t
@@ -19,9 +19,10 @@ $dbh = $cp->test_database_handle();
$host = $cp->get_host();
$dbname = $cp->get_dbname();
-my $label = 'POSTGRES_LOGFILE';
my $S = q{Action 'logfile'};
+my $label = 'POSTGRES_LOGFILE';
+
my $logfile = 'test_database_check_postgres/pg.log';
my $cmd = $cp->get_command("--logfile=$logfile");
diff --git a/t/02_prepared_txns.t b/t/02_prepared_txns.t
index 56a8b0f..b864c41 100644
--- a/t/02_prepared_txns.t
+++ b/t/02_prepared_txns.t
@@ -83,4 +83,3 @@ for (@$info) {
$dbh->{AutoCommit} = 0;
exit;
-
diff --git a/t/02_query_runtime.t b/t/02_query_runtime.t
index 29b4c47..4571428 100644
--- a/t/02_query_runtime.t
+++ b/t/02_query_runtime.t
@@ -20,6 +20,8 @@ my $cp = CP_Testing->new( {default_action => 'query_runtime'} );
$dbh = $cp->test_database_handle();
$dbname = $cp->get_dbname;
$host = $cp->get_host();
+
+my $S = q{Action 'query_runtime'};
my $label = 'POSTGRES_QUERY_RUNTIME';
$cp->drop_table_if_exists($testtbl);
@@ -28,8 +30,6 @@ $cp->drop_view_if_exists($testview);
$dbh->do(qq{CREATE TABLE "$testtbl" ("a" integer)}) or die $dbh->errstr;
$dbh->commit;
-my $S = q{Action 'query_runtime'};
-
$t = qq{$S self-identifies correctly};
$result = $cp->run(qq{-w 0 --queryname=$testtbl});
like ($result, qr{^$label}, $t);
diff --git a/t/02_query_time.t b/t/02_query_time.t
index 6cab66a..ac41a1c 100644
--- a/t/02_query_time.t
+++ b/t/02_query_time.t
@@ -17,9 +17,9 @@ my $cp = CP_Testing->new( {default_action => 'query_time'} );
$dbh = $cp->test_database_handle();
$dbname = $cp->get_dbname;
$host = $cp->get_host();
-my $label = 'POSTGRES_QUERY_TIME';
my $S = q{Action 'query_time'};
+my $label = 'POSTGRES_QUERY_TIME';
$t = qq{$S self-identifies correctly};
$result = $cp->run(q{-w 0});
diff --git a/t/02_relation_size.t b/t/02_relation_size.t
index db8ccad..596bfa2 100644
--- a/t/02_relation_size.t
+++ b/t/02_relation_size.t
@@ -10,16 +10,16 @@ use Test::More tests => 23;
use lib 't','.';
use CP_Testing;
-use vars qw/$dbh $dbname $host $t $result $user $label/;
+use vars qw/$dbh $dbname $host $t $result $user/;
my $cp = CP_Testing->new({default_action => 'relation_size'});
$dbh = $cp->test_database_handle();
$dbname = $cp->get_dbname;
$host = $cp->get_host();
$user = $cp->get_user();
-$label = q{POSTGRES_RELATION_SIZE};
my $S = q{Action 'relation_size'};
+my $label = q{POSTGRES_RELATION_SIZE};
my $testtbl = 'test_relation_size';
diff --git a/t/02_replicate_row.t b/t/02_replicate_row.t
index 248e59d..0527f14 100644
--- a/t/02_replicate_row.t
+++ b/t/02_replicate_row.t
@@ -17,6 +17,9 @@ my $cp = CP_Testing->new( {default_action => 'replicate-row'} );
$dbh = $cp->test_database_handle();
$dbh2 = $cp->get_fresh_dbh({dbname=>'ardala'});
+my $S = q{Action 'replicate_rows'};
+my $label = 'POSTGRES_REPLICATE_ROW';
+
$SQL = q{CREATE TABLE reptest(id INT, foo TEXT)};
if (! $cp->table_exists($dbh, 'reptest')) {
$dbh->do($SQL);
@@ -37,8 +40,6 @@ $dbh2->do($SQL);
$dbh->commit();
$dbh2->commit();
-my $S = q{Action 'replicate_rows'};
-
$t=qq{$S fails when called with an invalid option};
like ($cp->run('foobar=12'), qr{^\s*Usage:}, $t);
@@ -84,7 +85,7 @@ $dbh->do($SQL);
$dbh2->do($SQL);
$dbh->commit();
$dbh2->commit();
-like ($cp->run('DB2replicate-row', '-w 1 -repinfo=reptest,id,1,foo,yin,yang'), qr{WARNING: .+not replicated}, $t);
+like ($cp->run('DB2replicate-row', '-w 1 -repinfo=reptest,id,1,foo,yin,yang'), qr{^$label WARNING: .+not replicated}, $t);
$t=qq{$S reports error when we time out via critical};
$SQL = q{UPDATE reptest SET foo = 'yang' WHERE id = 1};
@@ -92,7 +93,7 @@ $dbh->do($SQL);
$dbh2->do($SQL);
$dbh->commit();
$dbh2->commit();
-like ($cp->run('DB2replicate-row', '-c 1 -repinfo=reptest,id,1,foo,yin,yang'), qr{CRITICAL: .+not replicated}, $t);
+like ($cp->run('DB2replicate-row', '-c 1 -repinfo=reptest,id,1,foo,yin,yang'), qr{^$label CRITICAL: .+not replicated}, $t);
$t=qq{$S reports error when we time out via critical with MRTG};
$SQL = q{UPDATE reptest SET foo = 'yang' WHERE id = 1};
@@ -109,7 +110,7 @@ $dbh2->{InactiveDestroy} = 1;
## Use fork to 'replicate' behind the back of the other process
if (fork) {
like ($cp->run('DB2replicate-row', '-c 5 -repinfo=reptest,id,1,foo,yin,yang'),
- qr{^POSTGRES_REPLICATE_ROW OK:.+Row was replicated}, $t);
+ qr{^$label OK:.+Row was replicated}, $t);
}
else {
sleep 1;
@@ -123,7 +124,7 @@ $t=qq{$S works when rows match, reports proper delay};
$dbh->commit();
if (fork) {
$result = $cp->run('DB2replicate-row', '-c 10 -repinfo=reptest,id,1,foo,yin,yang');
- like ($result, qr{^POSTGRES_REPLICATE_ROW OK:.+Row was replicated}, $t);
+ like ($result, qr{^$label OK:.+Row was replicated}, $t);
$result =~ /time=(\d+)/ or die 'No time?';
my $time = $1;
cmp_ok ($time, '>=', 3, $t);
diff --git a/t/02_settings_checksum.t b/t/02_settings_checksum.t
index e134772..08decc8 100644
--- a/t/02_settings_checksum.t
+++ b/t/02_settings_checksum.t
@@ -17,9 +17,9 @@ my $cp = CP_Testing->new( {default_action => 'settings_checksum'} );
$dbh = $cp->test_database_handle();
$dbname = $cp->get_dbname;
$host = $cp->get_host();
-my $label = 'POSTGRES_SETTINGS_CHECKSUM';
my $S = q{Action 'settings_checksum'};
+my $label = 'POSTGRES_SETTINGS_CHECKSUM';
$t = qq{$S self-identifies correctly};
$result = $cp->run('--critical 0');
@@ -51,3 +51,5 @@ like ($cp->run('-c abcdabcdabcdabcdabcdabcdabcdabcd'),
$t = qq{$S accepts matching checksum};
like ($cp->run("-w $true_checksum"), qr/OK.*\Qchecksum: $true_checksum\E/, $t);
+
+exit;
diff --git a/t/02_timesync.t b/t/02_timesync.t
index be4e76d..536a0b3 100644
--- a/t/02_timesync.t
+++ b/t/02_timesync.t
@@ -17,12 +17,12 @@ my $cp = CP_Testing->new( {default_action => 'timesync'} );
$dbh = $cp->test_database_handle();
$dbname = $cp->get_dbname;
$host = $cp->get_host();
+
+my $S = q{Action 'timesync'};
my $label = 'POSTGRES_TIMESYNC';
my $timepatt = qr{\d{4}-\d\d-\d\d \d\d:\d\d:\d\d};
-my $S = q{Action 'timesync'};
-
$t = qq{$S self-identifies correctly};
$result = $cp->run(q{-w 100});
like ($result, qr{^$label}, $t);
diff --git a/t/02_txn_idle.t b/t/02_txn_idle.t
index 16001d5..248a83c 100644
--- a/t/02_txn_idle.t
+++ b/t/02_txn_idle.t
@@ -18,9 +18,9 @@ $dbh = $cp->test_database_handle();
$dbh->{AutoCommit} = 1;
$dbname = $cp->get_dbname;
$host = $cp->get_host();
-my $label = 'POSTGRES_TXN_IDLE';
my $S = q{Action 'txn_idle'};
+my $label = 'POSTGRES_TXN_IDLE';
$t = qq{$S self-identifies correctly};
$result = $cp->run(q{-w 0});
diff --git a/t/02_txn_time.t b/t/02_txn_time.t
index f6a4e74..18acecc 100644
--- a/t/02_txn_time.t
+++ b/t/02_txn_time.t
@@ -18,9 +18,9 @@ $dbh = $cp->test_database_handle();
$dbh->{AutoCommit} = 1;
$dbname = $cp->get_dbname;
$host = $cp->get_host();
-my $label = 'POSTGRES_TXN_TIME';
my $S = q{Action 'txn_time'};
+my $label = 'POSTGRES_TXN_TIME';
my $ver = $dbh->{pg_server_version};
if ($ver < 80300) {
diff --git a/t/02_txn_wraparound.t b/t/02_txn_wraparound.t
index b077438..6b4dba0 100644
--- a/t/02_txn_wraparound.t
+++ b/t/02_txn_wraparound.t
@@ -20,9 +20,9 @@ my $cp = CP_Testing->new( {default_action => 'txn_wraparound'} );
$dbh = $cp->test_database_handle();
$dbname = $cp->get_dbname;
$host = $cp->get_host();
-my $label = 'POSTGRES_TXN_WRAPAROUND';
my $S = q{Action 'txn_wraparound'};
+my $label = 'POSTGRES_TXN_WRAPAROUND';
$t = qq{$S self-identifies correctly};
$result = $cp->run();
diff --git a/t/02_version.t b/t/02_version.t
index e9e7e08..fe5c54a 100644
--- a/t/02_version.t
+++ b/t/02_version.t
@@ -17,6 +17,7 @@ my $cp = CP_Testing->new( {default_action => 'version'} );
$dbh = $cp->test_database_handle();
my $S = q{Action 'version'};
+my $label = 'POSTGRES_VERSION';
$t=qq{$S fails when called with an invalid option};
like ($cp->run('foobar=12'), qr{^\s*Usage:}, $t);
@@ -37,66 +38,66 @@ $t=qq{$S fails when called with invalid critical};
like ($cp->run('-c foo'), qr{ERROR: Invalid string}, $t);
$t=qq{$S gives correct output for warning on two-part version};
-like ($cp->run('-w 5.2'), qr{POSTGRES_VERSION WARNING: .+expected 5.2}, $t);
+like ($cp->run('-w 5.2'), qr{^$label WARNING: .+expected 5.2}, $t);
$t=qq{$S gives correct output for warning on three-part version};
-like ($cp->run('-w 5.2.1'), qr{POSTGRES_VERSION WARNING: .+expected 5.2.1}, $t);
+like ($cp->run('-w 5.2.1'), qr{^$label WARNING: .+expected 5.2.1}, $t);
$t=qq{$S gives correct output for critical on two-part version};
-like ($cp->run('-c 6.10'), qr{POSTGRES_VERSION CRITICAL: .+expected 6.10}, $t);
+like ($cp->run('-c 6.10'), qr{^$label CRITICAL: .+expected 6.10}, $t);
$t=qq{$S gives correct output for critical on three-part version};
-like ($cp->run('-c 6.10.33'), qr{POSTGRES_VERSION CRITICAL: .+expected 6.10.33}, $t);
+like ($cp->run('-c 6.10.33'), qr{^$label CRITICAL: .+expected 6.10.33}, $t);
## Now to pull some trickery
$cp->fake_version('foobar');
$t=qq{$S gives correct output on invalid version() parse};
-like ($cp->run('-c 8.7'), qr{POSTGRES_VERSION UNKNOWN: .+Invalid query returned}, $t);
+like ($cp->run('-c 8.7'), qr{^$label UNKNOWN: .+Invalid query returned}, $t);
$cp->fake_version('7.8.12');
$t=qq{$S gives correct output for two-part version warning};
-like ($cp->run('-w 7.8'), qr{POSTGRES_VERSION OK: .+version 7.8.12}, $t);
+like ($cp->run('-w 7.8'), qr{^$label OK: .+version 7.8.12}, $t);
$t=qq{$S gives correct output for two-part version warning};
-like ($cp->run('-w 5.8'), qr{POSTGRES_VERSION WARNING: .+version 7.8.12}, $t);
+like ($cp->run('-w 5.8'), qr{^$label WARNING: .+version 7.8.12}, $t);
$t=qq{$S gives correct output for two-part version warning};
-like ($cp->run('-w 7.9'), qr{POSTGRES_VERSION WARNING: .+version 7.8.12}, $t);
+like ($cp->run('-w 7.9'), qr{^$label WARNING: .+version 7.8.12}, $t);
$t=qq{$S gives correct output for three-part version warning};
-like ($cp->run('-w 7.8.12'), qr{POSTGRES_VERSION OK: .+version 7.8.12}, $t);
+like ($cp->run('-w 7.8.12'), qr{^$label OK: .+version 7.8.12}, $t);
$t=qq{$S gives correct output for three-part version warning};
-like ($cp->run('-w 7.8.11'), qr{POSTGRES_VERSION WARNING: .+version 7.8.12}, $t);
+like ($cp->run('-w 7.8.11'), qr{^$label WARNING: .+version 7.8.12}, $t);
$t=qq{$S gives correct output for matching three-part version warning};
-like ($cp->run('-w 7.8.13'), qr{POSTGRES_VERSION WARNING: .+version 7.8.12}, $t);
+like ($cp->run('-w 7.8.13'), qr{^$label WARNING: .+version 7.8.12}, $t);
$t=qq{$S gives correct output for matching three-part version warning};
-like ($cp->run('-w 7.9.13'), qr{POSTGRES_VERSION WARNING: .+version 7.8.12}, $t);
+like ($cp->run('-w 7.9.13'), qr{^$label WARNING: .+version 7.8.12}, $t);
$t=qq{$S gives correct output for two-part version critical};
-like ($cp->run('-c 7.8'), qr{POSTGRES_VERSION OK: .+version 7.8.12}, $t);
+like ($cp->run('-c 7.8'), qr{^$label OK: .+version 7.8.12}, $t);
$t=qq{$S gives correct output for two-part version critical};
-like ($cp->run('-c 5.8'), qr{POSTGRES_VERSION CRITICAL: .+version 7.8.12}, $t);
+like ($cp->run('-c 5.8'), qr{^$label CRITICAL: .+version 7.8.12}, $t);
$t=qq{$S gives correct output for two-part version critical};
-like ($cp->run('-c 7.9'), qr{POSTGRES_VERSION CRITICAL: .+version 7.8.12}, $t);
+like ($cp->run('-c 7.9'), qr{^$label CRITICAL: .+version 7.8.12}, $t);
$t=qq{$S gives correct output for three-part version critical};
-like ($cp->run('-c 7.8.12'), qr{POSTGRES_VERSION OK: .+version 7.8.12}, $t);
+like ($cp->run('-c 7.8.12'), qr{^$label OK: .+version 7.8.12}, $t);
$t=qq{$S gives correct output for three-part version critical};
-like ($cp->run('-c 7.8.11'), qr{POSTGRES_VERSION CRITICAL: .+version 7.8.12}, $t);
+like ($cp->run('-c 7.8.11'), qr{^$label CRITICAL: .+version 7.8.12}, $t);
$t=qq{$S gives correct output for matching three-part version critical};
-like ($cp->run('-c 7.8.13'), qr{POSTGRES_VERSION CRITICAL: .+version 7.8.12}, $t);
+like ($cp->run('-c 7.8.13'), qr{^$label CRITICAL: .+version 7.8.12}, $t);
$t=qq{$S gives correct output for matching three-part version critical};
-like ($cp->run('-c 7.9.13'), qr{POSTGRES_VERSION CRITICAL: .+version 7.8.12}, $t);
+like ($cp->run('-c 7.9.13'), qr{^$label CRITICAL: .+version 7.8.12}, $t);
$t=qq{$S gives correct output for MRTG output};
like ($cp->run('--output=MRTG --mrtg=7.9.13'), qr{^0\n0\n\n7.8.12\n}, $t);
diff --git a/t/99_perlcritic.t b/t/99_perlcritic.t
index d91264f..0469bdb 100644
--- a/t/99_perlcritic.t
+++ b/t/99_perlcritic.t
@@ -153,3 +153,4 @@ for my $filename (sort @testfiles) {
pass('Finished Perl::Critic testing');
+exit;
diff --git a/t/CP_Testing.pm b/t/CP_Testing.pm
index 9106abc..3cc2ed1 100644
--- a/t/CP_Testing.pm
+++ b/t/CP_Testing.pm
@@ -88,6 +88,8 @@ sub test_database_handle {
print $cfh qq{listen_addresses = ''\n};
print $cfh qq{max_connections = 10\n};
print $cfh qq{max_fsm_pages = 99999\n};
+ print $cfh qq{stats_block_level = on\n};
+ print $cfh qq{stats_row_level = on\n};
## Grab the version for finicky items
if (qx{$initdb --version} !~ /(\d+)\.(\d+)/) {
--
1.6.0.5
More information about the Check_postgres
mailing list