1
0
mirror of https://github.com/postgres/postgres.git synced 2025-11-07 19:06:32 +03:00

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
This commit is contained in:
Heikki Linnakangas
2024-07-26 15:12:21 +03:00
parent b9e5249c29
commit 20e0e7da9b
7 changed files with 118 additions and 1 deletions

View File

@@ -570,3 +570,17 @@ InjectionPointCached(const char *name)
elog(ERROR, "Injection points are not supported by this build");
#endif
}
/*
* Test if an injection point is defined.
*/
bool
IsInjectionPointAttached(const char *name)
{
#ifdef USE_INJECTION_POINTS
return InjectionPointCacheRefresh(name) != NULL;
#else
elog(ERROR, "Injection points are not supported by this build");
return false; /* silence compiler */
#endif
}