Add TAP tests for ZLIB compression for pg_receivewal
authorMichael Paquier <michael@paquier.xyz>
Thu, 15 Jul 2021 06:53:20 +0000 (15:53 +0900)
committerMichael Paquier <michael@paquier.xyz>
Thu, 15 Jul 2021 06:53:20 +0000 (15:53 +0900)
commitffc9ddaea33f6dfd3dfa95828a0970fbb617bf8a
tree71ae585f420d374609b3a6c48e526747d79fbf92
parentdc2db1eac365b97c9129393acfe11102859f9e23
Add TAP tests for ZLIB compression for pg_receivewal

There is a non-trivial amount of code that handles ZLIB compression in
pg_receivewal, from basics like the format name, the calculation of the
start streaming position and of course the compression itself, but there
was no automated coverage for it.

This commit introduces a set of conditional tests (if the build supports
ZLIB) to cover the creation of ZLIB-compressed WAL segments, the
handling of the partial, compressed, WAL segments and the compression
operation in itself.  Note that there is an extra phase checking the
validity of the generated files by using directly a gzip command, passed
down by the Makefile of pg_receivewal.  This part is skipped if the
command cannot be found, something likely going to happen on Windows
with MSVC except if one sets the variable GZIP_PROGRAM in the
environment of the test.

This set of tests will become handy for upcoming patches that add more
options for the compression methods used by pg_receivewal, like LZ4, to
make sure that no existing facilities are broken.

Author: Georgios Kokolatos
Reviewed-by: Gilles Darold, Michael Paquier
Discussion: https://postgr.es/m/07BK3Mk5aEOsTwGaY77qBVyf9GjoEzn8TMgHLyPGfEFPIpTEmoQuP2P4c7teesjSg-LPeUafsp1flnPeQYINMSMB_UpggJDoduB5EDYBqaQ=@protonmail.com
src/bin/pg_basebackup/Makefile
src/bin/pg_basebackup/t/020_pg_receivewal.pl