Обсуждение: [COMMITTERS] pgsql: Work around Msys weakness in Testlib.pm's command_like()

Поиск
Список
Период
Сортировка

[COMMITTERS] pgsql: Work around Msys weakness in Testlib.pm's command_like()

От
Andrew Dunstan
Дата:
Work around Msys weakness in Testlib.pm's command_like()

When output of IPC::Run::run () is redirected to scalar references, in
certain circumstances the Msys perl does not correctly detect that the
end of file has been seen, making the test hang indefinitely. One such
circumstance is when the command is 'pg_ctl start', and such a change
was made in commit f13ea95f9e. The workaround, which only applies on
MSys, is to redirect the output to temporary files and then read them in
when the process has finished.

Patch by me, reviewed and tweaked by Tom Lane.

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/efd7f8e36553cd32e445061cbbc80d32028f4248

Modified Files
--------------
src/bin/pg_ctl/t/001_start_stop.pl | 14 +++++++++++---
src/test/perl/TestLib.pm           | 19 +++++++++++++++++++
2 files changed, 30 insertions(+), 3 deletions(-)


Re: [COMMITTERS] pgsql: Work around Msys weakness in Testlib.pm'scommand_like()

От
Peter Eisentraut
Дата:
On 7/26/17 22:49, Andrew Dunstan wrote:
> Work around Msys weakness in Testlib.pm's command_like()
>
> When output of IPC::Run::run () is redirected to scalar references, in
> certain circumstances the Msys perl does not correctly detect that the
> end of file has been seen, making the test hang indefinitely. One such
> circumstance is when the command is 'pg_ctl start', and such a change
> was made in commit f13ea95f9e. The workaround, which only applies on
> MSys, is to redirect the output to temporary files and then read them in
> when the process has finished.

This commit message contains interesting information that would be
useful to record in a code comment.  Otherwise it's not really clear
when or why to use the "safe" variant.

--
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services