david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

[test] Update snprintf_ok() to use okx()

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown 2016-04-12 11:45:58 +01:00
parent 597521ef53
commit 320488d0f9
1 changed files with 25 additions and 14 deletions

View File

@ -39,21 +39,32 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
/**
* Report an snprintf() test result
*
* @v len Buffer length
* @v expected Expected result
* @v file Test code file
* @v line Test code line
* @v format Format string
* @v ... Arguments
*/
#define snprintf_ok( len, result, format, ... ) do { \
char actual[ (len) ]; \
const char expected[] = result; \
size_t actual_len; \
\
actual_len = snprintf ( actual, sizeof ( actual ), \
format, ##__VA_ARGS__ ); \
ok ( actual_len >= strlen ( result ) ); \
ok ( strcmp ( actual, expected ) == 0 ); \
if ( strcmp ( actual, expected ) != 0 ) { \
DBG ( "SNPRINTF expected \"%s\", got \"%s\"\n", \
expected, actual ); \
} \
} while ( 0 )
static void snprintf_okx ( size_t len, const char *expected, const char *file,
unsigned int line, const char *fmt, ... ) {
char actual[len];
size_t actual_len;
va_list args;
va_start ( args, fmt );
actual_len = vsnprintf ( actual, sizeof ( actual ), fmt, args );
va_end ( args );
okx ( actual_len >= strlen ( expected ), file, line );
okx ( strcmp ( actual, expected ) == 0, file, line );
if ( strcmp ( actual, expected ) != 0 ) {
DBG ( "SNPRINTF expected \"%s\", got \"%s\"\n",
expected, actual );
}
}
#define snprintf_ok( len, result, format, ... ) \
snprintf_okx ( len, result, __FILE__, __LINE__, format, \
##__VA_ARGS__ )
/**
* Perform vsprintf() self-tests