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>
|
<release-item>
|
||||||
<p>Define cipher magic size with <code>sizeof()</code> rather than using a constant.</p>
|
<p>Define cipher magic size with <code>sizeof()</code> rather than using a constant.</p>
|
||||||
</release-item>
|
</release-item>
|
||||||
|
|
||||||
|
<release-item>
|
||||||
|
<p>Add <code>cvtCharToZ()</code> and macro for debugging <code>char</code> params.</p>
|
||||||
|
</release-item>
|
||||||
</release-development-list>
|
</release-development-list>
|
||||||
</release-core-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) \
|
#define FUNCTION_DEBUG_BOOLP_FORMAT(value, buffer, bufferSize) \
|
||||||
ptrToLog(value, "bool *", 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 \
|
#define FUNCTION_DEBUG_CHARP_TYPE \
|
||||||
char *
|
char *
|
||||||
#define FUNCTION_DEBUG_CHARP_FORMAT(value, buffer, bufferSize) \
|
#define FUNCTION_DEBUG_CHARP_FORMAT(value, buffer, bufferSize) \
|
||||||
|
@ -118,6 +118,28 @@ cvtBoolToConstZ(bool value)
|
|||||||
return value ? "true" : "false";
|
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
|
Convert double to zero-terminated string and vice versa
|
||||||
***********************************************************************************************************************************/
|
***********************************************************************************************************************************/
|
||||||
|
@ -10,6 +10,8 @@ Convert Base Data Types
|
|||||||
/***********************************************************************************************************************************
|
/***********************************************************************************************************************************
|
||||||
Functions
|
Functions
|
||||||
***********************************************************************************************************************************/
|
***********************************************************************************************************************************/
|
||||||
|
size_t cvtCharToZ(char value, char *buffer, size_t bufferSize);
|
||||||
|
|
||||||
size_t cvtDoubleToZ(double value, char *buffer, size_t bufferSize);
|
size_t cvtDoubleToZ(double value, char *buffer, size_t bufferSize);
|
||||||
double cvtZToDouble(const char *value);
|
double cvtZToDouble(const char *value);
|
||||||
|
|
||||||
|
@ -138,7 +138,7 @@ unit:
|
|||||||
|
|
||||||
# ----------------------------------------------------------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------------------------------------------------------
|
||||||
- name: type-convert
|
- name: type-convert
|
||||||
total: 8
|
total: 9
|
||||||
|
|
||||||
coverage:
|
coverage:
|
||||||
common/type/convert: full
|
common/type/convert: full
|
||||||
|
@ -24,6 +24,17 @@ testRun(void)
|
|||||||
TEST_RESULT_STR(buffer, "false", " check buffer");
|
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()"))
|
if (testBegin("cvtDoubleToZ() and cvtZToDouble()"))
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user