On Mon, Nov 18, 2019 at 6:30 PM Pavel Stehule <pavel.steh...@gmail.com> wrote: >> >> I'll send this test today > > > here is it >
Thanks for adding the test. Few comments: This function is same as in test/recovery/t/013_crash_restart.pl, we can add to a common file and use in both places: +# Pump until string is matched, or timeout occurs +sub pump_until +{ + my ($proc, $stream, $untl) = @_; + $proc->pump_nb(); + while (1) + { + last if $$stream =~ /$untl/; + if ($psql_timeout->is_expired) + { This can be Tests drop database with force option: +# +# Tests killing session connected to dropped database +# This can be changed to check database foobar1 does not exist. +# and there is not a database with this name +is($node->safe_psql('postgres', qq[SELECT EXISTS(SELECT * FROM pg_database WHERE datname='foobar1');]), + 'f', 'database foobar1 was removed'); This can be changed to check the connections on foobar1 database + +# and it is connected to foobar1 database +is($node->safe_psql('postgres', qq[SELECT pid FROM pg_stat_activity WHERE datname='foobar1' AND pid = $pid;]), + $pid, 'database foobar1 is used'); This can be changed to restart psql as the previous connection will be terminated by previous drop database. + +# restart psql processes, now that the crash cycle finished +($killme_stdin, $killme_stdout, $killme_stderr) = ('', '', ''); +$killme->run(); Regards, Vignesh EnterpriseDB: http://www.enterprisedb.com