1
0
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:
David Steele
2018-08-14 16:18:17 -04:00
parent 9e3273fdf9
commit 4a176681c3
6 changed files with 45 additions and 1 deletions

View File

@ -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>

View File

@ -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) \

View File

@ -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
***********************************************************************************************************************************/ ***********************************************************************************************************************************/

View File

@ -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);

View File

@ -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

View File

@ -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()"))
{ {