# Test postgres_fdw reaction on target server disconnection
# (target server part)

use strict;
use warnings;

use PostgreSQL::Test::Utils;
use Test::More tests => 1;
use PostgreSQL::Test::Cluster;

use Time::HiRes qw( time );
use DateTime;

my $foreign = PostgreSQL::Test::Cluster->new('foreign', port => 54321);
$foreign->init();

$foreign->append_conf(
	'postgresql.conf', qq{
listen_addresses = '*'

log_min_messages = DEBUG1
log_min_error_statement = log
log_connections = on
log_disconnections = on
log_line_prefix = '%m|%u|%d|%c|'
log_statement = 'all'
	});

$foreign->append_conf('pg_hba.conf',
    qq{host all all 1.0.0.0/24 trust});

$foreign->start;

$foreign->safe_psql('postgres', qq{
CREATE TABLE large(a int, t text);
INSERT INTO large SELECT x, rpad(x::text, 100) FROM generate_series(0, 999999) x;
});
diag(`ipconfig`);
diag("server port: " . $foreign->port);
sleep(10);
for (my $i = 0; $i < 1000; $i++) {
	sleep(5);
	diag(DateTime->from_epoch( epoch => time )->strftime('%H:%M:%S.%6N') . " restarting server...");
	$foreign->restart();
}
ok(1);