diff --git a/src/test/recovery/t/003_recovery_targets.pl b/src/test/recovery/t/003_recovery_targets.pl index fd14bab208..85afc71c66 100644 --- a/src/test/recovery/t/003_recovery_targets.pl +++ b/src/test/recovery/t/003_recovery_targets.pl @@ -167,3 +167,22 @@ foreach my $i (0..100) $logfile = slurp_file($node_standby->logfile()); ok($logfile =~ qr/FATAL: recovery ended before configured recovery target was reached/, 'recovery end before target reached is a fatal error'); + +# react to promote on recovery_target_action = pause + +$node_standby = get_new_node('standby_9'); +$node_standby->init_from_backup($node_master, 'my_backup', + has_restoring => 1, standby => 1); +$node_standby->append_conf('postgresql.conf', + "recovery_target_name = '$recovery_name'"); +$node_standby->append_conf('postgresql.conf', + "recovery_target_action = 'pause'"); +$node_standby->start; + +# Wait until standby has replayed enough data +my $caughtup_query = + "SELECT '$lsn4'::pg_lsn <= pg_last_wal_replay_lsn()"; +$node_standby->poll_query_until('postgres', $caughtup_query) + or die "Timed out while waiting for standby to catch up"; + +$node_standby->promote;