You've already forked pgbackrest
mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2025-07-03 00:26:59 +02:00
Add cvtCharToZ() and macro for debugging char params.
This commit is contained in:
@ -150,6 +150,10 @@
|
||||
<release-item>
|
||||
<p>Define cipher magic size with <code>sizeof()</code> rather than using a constant.</p>
|
||||
</release-item>
|
||||
|
||||
<release-item>
|
||||
<p>Add <code>cvtCharToZ()</code> and macro for debugging <code>char</code> params.</p>
|
||||
</release-item>
|
||||
</release-development-list>
|
||||
</release-core-list>
|
||||
|
||||
|
@ -107,6 +107,11 @@ size_t strzToLog(const char *string, char *buffer, size_t bufferSize);
|
||||
#define FUNCTION_DEBUG_BOOLP_FORMAT(value, buffer, bufferSize) \
|
||||
ptrToLog(value, "bool *", buffer, bufferSize)
|
||||
|
||||
#define FUNCTION_DEBUG_CHAR_TYPE \
|
||||
char
|
||||
#define FUNCTION_DEBUG_CHAR_FORMAT(value, buffer, bufferSize) \
|
||||
cvtCharToZ(value, buffer, bufferSize)
|
||||
|
||||
#define FUNCTION_DEBUG_CHARP_TYPE \
|
||||
char *
|
||||
#define FUNCTION_DEBUG_CHARP_FORMAT(value, buffer, bufferSize) \
|
||||
|
@ -118,6 +118,28 @@ cvtBoolToConstZ(bool value)
|
||||
return value ? "true" : "false";
|
||||
}
|
||||
|
||||
/***********************************************************************************************************************************
|
||||
Convert char to zero-terminated string
|
||||
***********************************************************************************************************************************/
|
||||
size_t
|
||||
cvtCharToZ(char value, char *buffer, size_t bufferSize)
|
||||
{
|
||||
FUNCTION_TEST_BEGIN();
|
||||
FUNCTION_TEST_PARAM(BOOL, value);
|
||||
FUNCTION_TEST_PARAM(CHARP, buffer);
|
||||
FUNCTION_TEST_PARAM(SIZE, bufferSize);
|
||||
|
||||
FUNCTION_TEST_ASSERT(buffer != NULL);
|
||||
FUNCTION_TEST_END();
|
||||
|
||||
size_t result = (size_t)snprintf(buffer, bufferSize, "%c", value);
|
||||
|
||||
if (result >= bufferSize)
|
||||
THROW(AssertError, "buffer overflow");
|
||||
|
||||
FUNCTION_TEST_RESULT(SIZE, result);
|
||||
}
|
||||
|
||||
/***********************************************************************************************************************************
|
||||
Convert double to zero-terminated string and vice versa
|
||||
***********************************************************************************************************************************/
|
||||
|
@ -10,6 +10,8 @@ Convert Base Data Types
|
||||
/***********************************************************************************************************************************
|
||||
Functions
|
||||
***********************************************************************************************************************************/
|
||||
size_t cvtCharToZ(char value, char *buffer, size_t bufferSize);
|
||||
|
||||
size_t cvtDoubleToZ(double value, char *buffer, size_t bufferSize);
|
||||
double cvtZToDouble(const char *value);
|
||||
|
||||
|
@ -138,7 +138,7 @@ unit:
|
||||
|
||||
# ----------------------------------------------------------------------------------------------------------------------------
|
||||
- name: type-convert
|
||||
total: 8
|
||||
total: 9
|
||||
|
||||
coverage:
|
||||
common/type/convert: full
|
||||
|
@ -24,6 +24,17 @@ testRun(void)
|
||||
TEST_RESULT_STR(buffer, "false", " check buffer");
|
||||
}
|
||||
|
||||
// *****************************************************************************************************************************
|
||||
if (testBegin("cvtCharToZ()"))
|
||||
{
|
||||
char buffer[STACK_TRACE_PARAM_MAX];
|
||||
|
||||
TEST_ERROR(cvtCharToZ('A', buffer, 1), AssertError, "buffer overflow");
|
||||
|
||||
TEST_RESULT_INT(cvtCharToZ('C', buffer, STACK_TRACE_PARAM_MAX), 1, "convert char to string");
|
||||
TEST_RESULT_STR(buffer, "C", " check buffer");
|
||||
}
|
||||
|
||||
// *****************************************************************************************************************************
|
||||
if (testBegin("cvtDoubleToZ() and cvtZToDouble()"))
|
||||
{
|
||||
|
Reference in New Issue
Block a user