Re: pgsql: Add TAP tests for pg_verify_checksums - Mailing list pgsql-hackers

From Michael Paquier
Subject Re: pgsql: Add TAP tests for pg_verify_checksums
Date
Msg-id 20181012005614.GC26424@paquier.xyz
Whole thread Raw
Responses Re: pgsql: Add TAP tests for pg_verify_checksums  (Andres Freund <andres@anarazel.de>)
List pgsql-hackers
On Fri, Oct 12, 2018 at 12:17:57AM +0000, Michael Paquier wrote:
> Add TAP tests for pg_verify_checksums
>
> All options available in the utility get coverage:
> - Tests with disabled page checksums.
> - Tests with enabled test checksums.
> - Emulation of corruption and broken checksums with a full scan and
> single relfilenode scan.

culicidae is failing after this commit in an interesting way, so we
really needed some tests for this utility:
https://buildfarm.postgresql.org/cgi-bin/show_history.pl?nm=culicidae&br=HEAD

ok 7 - fails with corrupted data status (got 1 vs expected 1)
not ok 8 - fails with corrupted data stdout /(?^:Bad checksums:.*1)/

#   Failed test 'fails with corrupted data stdout /(?^:Bad checksums:.*1)/'
#   at t/002_actions.pl line 57.
#                   ''
#     doesn't match '(?^:Bad checksums:.*1)'
not ok 9 - fails with corrupted data stderr /(?^:checksum verification failed)/

So the checksum failure is happening, but the output is not present.
What's not clear to me is that all the other hosts running Debian SID
don't complain, and that the follow-up test on a single relfilenode is
able to pass with a test much similar to the previous one.  Is the issue
that we should just call fflush() on stderr and stdout at the end of
main() in pg_verify_checksum.c?  Shouldn't we back-patch that?
--
Michael

Attachment

pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Re: Debian mips: Failed test 'Check expected t_009_tbl data onstandby'
Next
From: Andres Freund
Date:
Subject: Re: pgsql: Add TAP tests for pg_verify_checksums