Re: meson: Make test output much more useful on failure (both in CI and locally)

Jelte Fennema <postgres@jeltef.nl>

From: "Jelte Fennema-Nio" <postgres@jeltef.nl>
To: "Nazir Bilal Yavuz" <byavuz81@gmail.com>
Cc: "Andres Freund" <andres@anarazel.de>, "PostgreSQL Hackers" <pgsql-hackers@lists.postgresql.org>
Date: 2026-02-06T08:44:12Z
Lists: pgsql-hackers

Attachments

On Tue, 3 Feb 2026 at 11:20, Nazir Bilal Yavuz <byavuz81@gmail.com> wrote:
> v2-0001:
>
> This doesn't really read the first 80 lines of the combined diff.
> Lines with more than 1023 characters will be counted and printed as
> multiple lines. I don't think this is a problem but clearing this
> would be helpful. Other than that, it looks good to me.

I was annoyed by this, so I actually fixed it (manually tested by
changing the buffer to 10 bytes). This meant I needed to introduce
DIAG_DETAIL and DIAG_END, like we already had NOTE_DETAIL and NOTE_END.

> v2-0002:
>
> I am just curious if test failure can cause file descriptors not being
> properly closed and then the IPC::Run:run() call will hang
> indefinitely like the pg_ctl case. Other than that, it looks good to
> me.

No, this issue only happens because for the 'pg_ctl restart' process,
its the child postmaster process outlives the pg_ctl process, WHILE
still having the stdout/stderr file descriptor open. As long as all the
subprocesses exit, the file descriptor will be closed by the OS
automatically. So, this problem really only occurs in these daemon
spawning situations. Which for us in practice is only for pg_ctl
start/restart.

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Use command_ok for pg_regress calls in 002_pg_upgrade and 027_stream_regress

  2. perl tap: Show die reason in TAP output

  3. perl tap: Show failed command output

  4. perl tap: Use croak instead of die in our helper modules

  5. pg_regress: Include diffs in TAP output