From 10240ff94fa62383eeedb8fc395254f980c0e8f0 Mon Sep 17 00:00:00 2001 From: Masahiko Sawada Date: Wed, 30 Aug 2023 23:10:59 +0900 Subject: [PATCH v5 1/2] Add option to specify timeout seconds to BackgroundPsql.pm. Author: Masahiko Sawada Reviewed-by: Discussion: https://postgr.es/m/ --- src/test/perl/PostgreSQL/Test/BackgroundPsql.pm | 10 ++++++---- src/test/perl/PostgreSQL/Test/Cluster.pm | 4 +++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/test/perl/PostgreSQL/Test/BackgroundPsql.pm b/src/test/perl/PostgreSQL/Test/BackgroundPsql.pm index 924b57ab21..725c3555f9 100644 --- a/src/test/perl/PostgreSQL/Test/BackgroundPsql.pm +++ b/src/test/perl/PostgreSQL/Test/BackgroundPsql.pm @@ -68,7 +68,7 @@ use Test::More; =over -=item PostgreSQL::Test::BackgroundPsql->new(interactive, @params) +=item PostgreSQL::Test::BackgroundPsql->new(interactive, @params, timeout) Builds a new object of class C for either an interactive or background session and starts it. If C is @@ -81,7 +81,7 @@ string. For C sessions, IO::Pty is required. sub new { my $class = shift; - my ($interactive, $psql_params) = @_; + my ($interactive, $psql_params, $timeout) = @_; my $psql = { 'stdin' => '', 'stdout' => '', @@ -96,8 +96,10 @@ sub new "Forbidden caller of constructor: package: $package, file: $file:$line" unless $package->isa('PostgreSQL::Test::Cluster'); - $psql->{timeout} = - IPC::Run::timeout($PostgreSQL::Test::Utils::timeout_default); + $psql->{timeout} = IPC::Run::timeout( + defined($timeout) + ? $timeout + : $PostgreSQL::Test::Utils::timeout_default); if ($interactive) { diff --git a/src/test/perl/PostgreSQL/Test/Cluster.pm b/src/test/perl/PostgreSQL/Test/Cluster.pm index 2a478ba6ed..c34c3b8627 100644 --- a/src/test/perl/PostgreSQL/Test/Cluster.pm +++ b/src/test/perl/PostgreSQL/Test/Cluster.pm @@ -2054,6 +2054,7 @@ sub background_psql local %ENV = $self->_get_env(); my $replication = $params{replication}; + my $timeout = undef; my @psql_params = ( $self->installed_command('psql'), @@ -2065,12 +2066,13 @@ sub background_psql '-'); $params{on_error_stop} = 1 unless defined $params{on_error_stop}; + $timeout = $params{timeout} if defined $params{timeout}; push @psql_params, '-v', 'ON_ERROR_STOP=1' if $params{on_error_stop}; push @psql_params, @{ $params{extra_params} } if defined $params{extra_params}; - return PostgreSQL::Test::BackgroundPsql->new(0, \@psql_params); + return PostgreSQL::Test::BackgroundPsql->new(0, \@psql_params, $timeout); } =pod -- 2.31.1