Add test for early backend startup errors
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Fri, 26 Jul 2024 12:12:21 +0000 (15:12 +0300)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Fri, 26 Jul 2024 12:12:21 +0000 (15:12 +0300)
commit20e0e7da9bc0089433c70b2b53ddf6a340ab5df3
treea4078e7e981efe7776d4681bfa831fb61c121f47
parentb9e5249c29354186576d8fc00609fe7eaf7c8d25
Add test for early backend startup errors

The new test tests the libpq fallback behavior on an early error,
which was fixed in the previous commit.

This adds an IS_INJECTION_POINT_ATTACHED() macro, to allow writing
injected test code alongside the normal source code. In principle, the
new test could've been implemented by an extra test module with a
callback that sets the FrontendProtocol global variable, but I think
it's more clear to have the test code right where the injection point
is, because it has pretty intimate knowledge of the surrounding
context it runs in.

Reviewed-by: Michael Paquier
Discussion: https://www.postgresql.org/message-id/CAOYmi%2Bnwvu21mJ4DYKUa98HdfM_KZJi7B1MhyXtnsyOO-PB6Ww%40mail.gmail.com
doc/src/sgml/xfunc.sgml
src/backend/tcop/backend_startup.c
src/backend/utils/misc/injection_point.c
src/include/utils/injection_point.h
src/interfaces/libpq/Makefile
src/interfaces/libpq/meson.build
src/interfaces/libpq/t/005_negotiate_encryption.pl