[PATCH] Fix TAP tests with recent IPC::Run on Windows

From: Andrew Bille <andrewbille(at)gmail(dot)com>
To: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: [PATCH] Fix TAP tests with recent IPC::Run on Windows
Date: 2026-09-25 08:59:16
Message-ID: CAJnzarxyuspsEcyG4iNqBQSVMj7B0mgZ3V4_EEhsKAhGtGX-Yg@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,
While running the TAP test suite on Windows with IPC::Run 20260402.0,
I found a number of failures caused by changes in IPC::Run's Win32
stream handling.
There were two distinct symptoms.
First, IPC::Run now uses binary mode by default on Windows. Text
captured into Perl scalars therefore retains CRLF, while a number of
TAP tests expect the previous text-mode behavior. This caused many
comparisons to fail even though the displayed output looked identical.
The patch adds ipc_run_text_mode() and uses it for IPC::Run redirects
whose contents are treated as text by the tests.
Second, a few tests relied on implicit standard streams. With the
recent IPC::Run this resulted in failures such as:

psql: error: could not print result table: Bad file descriptor

and, in pg_upgrade tests, child xcopy commands failing to copy
pg_xact unless stdin was supplied explicitly.
Those cases now use explicit stream endpoints.
I tested the patch with the full test suite on Windows using both:
IPC::Run 20260402.0
IPC::Run 20231003.0
Both pass. I also tested the changes on Linux successfully.
Patch attached.

Regards,
Andrew, Postgres Professional

Attachment Content-Type Size
0001-Fix-TAP-tests-with-recent-IPC-Run-on-Windows.patch text/x-patch 14.3 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Paquier 2026-09-25 09:04:40 Re: BUG: pg_class.relchecks overflow, making table undroppable
Previous Message Michael Paquier 2026-09-25 08:54:38 Re: WAL segment file descriptor leak on read errors can PANIC the server