1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2026-05-22 10:15:16 +02:00

Add CHECK_FMT() macros and tests for CHECK*() macros.

The CHECK_FMT() macro will be used in some upcoming tests but could also be useful in the core code.

The CHECK*() macros never had tests so add them.
This commit is contained in:
David Steele
2023-01-05 12:44:00 +07:00
parent 2e3513984e
commit a5499afabc
3 changed files with 34 additions and 2 deletions
+8
View File
@@ -62,4 +62,12 @@ Checks are used in production builds to test very important conditions. Be sure
} \
while (0)
#define CHECK_FMT(type, condition, message, ...) \
do \
{ \
if (!(condition)) \
THROW_FMT(type, message, __VA_ARGS__); \
} \
while (0)
#endif
+13 -1
View File
@@ -11,10 +11,22 @@ testRun(void)
FUNCTION_HARNESS_VOID();
// *****************************************************************************************************************************
if (testBegin("ASSERT()"))
if (testBegin("ASSERT(), CHECK*()"))
{
// -------------------------------------------------------------------------------------------------------------------------
TEST_TITLE("ASSERT()");
TEST_RESULT_VOID(ASSERT(true), "assert true ignored");
TEST_RESULT_VOID(ASSERT(false || false), "assert false ignored");
// -------------------------------------------------------------------------------------------------------------------------
TEST_TITLE("CHECK*()");
TEST_RESULT_VOID(CHECK(AssertError, true, "check succeeded"), "check true");
TEST_RESULT_VOID(CHECK_FMT(AssertError, true, "check %s", "succeeded"), "check true");
TEST_ERROR(CHECK(AssertError, false || false, "message"), AssertError, "message");
TEST_ERROR(CHECK_FMT(AssertError, false || false, "%s", "message"), AssertError, "message");
}
FUNCTION_HARNESS_RETURN_VOID();
+13 -1
View File
@@ -11,10 +11,22 @@ testRun(void)
FUNCTION_HARNESS_VOID();
// *****************************************************************************************************************************
if (testBegin("ASSERT()"))
if (testBegin("ASSERT(), CHECK*()"))
{
// -------------------------------------------------------------------------------------------------------------------------
TEST_TITLE("ASSERT()");
TEST_RESULT_VOID(ASSERT(true), "assert true");
TEST_ERROR(ASSERT(false || false), AssertError, "assertion 'false || false' failed");
// -------------------------------------------------------------------------------------------------------------------------
TEST_TITLE("CHECK*()");
TEST_RESULT_VOID(CHECK(AssertError, true, "check succeeded"), "check true");
TEST_RESULT_VOID(CHECK_FMT(AssertError, true, "check %s", "succeeded"), "check true");
TEST_ERROR(CHECK(AssertError, false || false, "message"), AssertError, "message");
TEST_ERROR(CHECK_FMT(AssertError, false || false, "%s", "message"), AssertError, "message");
}
FUNCTION_HARNESS_RETURN_VOID();