mirror of https://github.com/postgres/postgres
Reviewed-by: Michael Paquier <michael.paquier@gmail.com>pull/17/head
parent
e767db2242
commit
eb5089a05b
@ -0,0 +1,39 @@ |
||||
use strict; |
||||
use warnings; |
||||
|
||||
use PostgresNode; |
||||
use TestLib; |
||||
use Test::More tests => 9; |
||||
|
||||
my $tempdir = TestLib::tempdir; |
||||
|
||||
command_fails_like([ 'pg_ctl', '-D', "$tempdir/nonexistent", 'promote' ], |
||||
qr/directory .* does not exist/, |
||||
'pg_ctl promote with nonexistent directory'); |
||||
|
||||
my $node_primary = get_new_node('primary'); |
||||
$node_primary->init(allows_streaming => 1); |
||||
|
||||
command_fails_like([ 'pg_ctl', '-D', $node_primary->data_dir, 'promote' ], |
||||
qr/PID file .* does not exist/, |
||||
'pg_ctl promote of not running instance fails'); |
||||
|
||||
$node_primary->start; |
||||
|
||||
command_fails_like([ 'pg_ctl', '-D', $node_primary->data_dir, 'promote' ], |
||||
qr/not in standby mode/, |
||||
'pg_ctl promote of primary instance fails'); |
||||
|
||||
my $node_standby = get_new_node('standby'); |
||||
$node_primary->backup('my_backup'); |
||||
$node_standby->init_from_backup($node_primary, 'my_backup', has_streaming => 1); |
||||
$node_standby->start; |
||||
|
||||
is($node_standby->safe_psql('postgres', 'SELECT pg_is_in_recovery()'), |
||||
't', 'standby is in recovery'); |
||||
|
||||
command_ok([ 'pg_ctl', '-D', $node_standby->data_dir, 'promote' ], |
||||
'pg_ctl promote of standby runs'); |
||||
|
||||
ok($node_standby->poll_query_until('postgres', 'SELECT NOT pg_is_in_recovery()'), |
||||
'promoted standby is not in recovery'); |
Loading…
Reference in new issue