You've already forked pgbackrest
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:
@@ -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
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user