Re: Make psql's qeury canceling test simple by using signal() routine of IPC::Run

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Fabien COELHO <coelho@cri.ensmp.fr>
Cc: Yugo NAGATA <nagata@sraoss.co.jp>, pgsql-hackers@postgresql.org
Date: 2023-08-13T23:29:25Z
Lists: pgsql-hackers
On Sun, Aug 13, 2023 at 11:22:33AM +0200, Fabien COELHO wrote:
> Test run is ok on my Ubuntu laptop.

I have a few comments about this patch.

On HEAD and even after this patch, we still have the following:
SKIP:                                                                                                                                                                      {                                                                                                                                                                              skip "cancel test requires a Unix shell", 2 if $windows_os;

Could the SKIP be removed for $windows_os?  If not, this had better be
documented because the reason for the skip becomes incorrect.

The comment at the top of the SKIP block still states the following:
# There is, as of this writing, no documented way to get the PID of
# the process from IPC::Run.  As a workaround, we have psql print its
# own PID (which is the parent of the shell launched by psql) to a
# file.

This is also incorrect.
--
Michael

Commits

  1. Switch psql's TAP test for query cancellation to use IPC::Run::signal()

  2. Skip psql's TAP test for query cancellation entirely on Windows