BEGIN_HEADER #include struct buffer_data { char buf[2000]; char *ptr; }; void string_debug(void *data, int level, const char *str) { struct buffer_data *buffer = (struct buffer_data *) data; level = 0; memcpy(buffer->ptr, str, strlen(str)); buffer->ptr += strlen(str); } END_HEADER BEGIN_CASE debug_print_crt:crt_file:file:line:prefix:result_str { x509_cert crt; ssl_context ssl; struct buffer_data buffer; memset( &crt, 0, sizeof( x509_cert ) ); memset( &ssl, 0, sizeof( ssl_context ) ); memset( buffer.buf, 0, 2000 ); buffer.ptr = buffer.buf; ssl_set_dbg(&ssl, string_debug, &buffer); TEST_ASSERT( x509parse_crtfile( &crt, {crt_file} ) == 0 ); debug_print_crt( &ssl, 0, {file}, {line}, {prefix}, &crt); TEST_ASSERT( strcmp( buffer.buf, {result_str} ) == 0 ); } END_CASE BEGIN_CASE debug_print_mpi:radix:value:file:line:prefix:result_str { ssl_context ssl; struct buffer_data buffer; mpi val; mpi_init( &val, NULL ); memset( &ssl, 0, sizeof( ssl_context ) ); memset( buffer.buf, 0, 2000 ); buffer.ptr = buffer.buf; TEST_ASSERT( mpi_read_string( &val, {radix}, {value} ) == 0 ); ssl_set_dbg(&ssl, string_debug, &buffer); debug_print_mpi( &ssl, 0, {file}, {line}, {prefix}, &val); TEST_ASSERT( strcmp( buffer.buf, {result_str} ) == 0 ); } END_CASE