[PATCH] include: Print context information after the message type.
Francois Gouget
fgouget at codeweavers.com
Mon May 17 06:04:40 CDT 2021
This makes identifying the failures and other message types easier and
more reliable.
From: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
---
I think traces should have the context information too.
Skips probably would not be used inside context blocks but if they are I
think they should have the context information too.
I would consider that the "Test succeeded" messages are mostly useful to
determine the location of a crash and thus don't need contect
information. Maybe that's wrong in case they are used to identify the
location of slowdowns (with WINETEST_TIME).
So taking all that into account I propose this patch.
It adds a winetest_print_context() function so the context printing code
is in just one location.
It also removes winetest_vprintf() since that's only used in one place
and not exported.
---
include/wine/test.h | 37 +++++++++++++++++++------------------
1 file changed, 19 insertions(+), 18 deletions(-)
diff --git a/include/wine/test.h b/include/wine/test.h
index f2aacaff592..8073071d262 100644
--- a/include/wine/test.h
+++ b/include/wine/test.h
@@ -300,26 +300,26 @@ const char *winetest_elapsed(void)
return wine_dbg_sprintf( "%.3f", (now - winetest_start_time) / 1000.0);
}
-static void winetest_vprintf( const char *msg, __winetest_va_list args )
-{
- struct tls_data *data = get_tls_data();
- unsigned int i;
-
- printf( "%s:%d:%s ", data->current_file, data->current_line, winetest_elapsed() );
- for (i = 0; i < data->context_count; ++i)
- printf( "%s: ", data->context[i] );
- vprintf( msg, args );
-}
-
static void __winetest_cdecl winetest_printf( const char *msg, ... ) __WINE_PRINTF_ATTR(1,2);
static void __winetest_cdecl winetest_printf( const char *msg, ... )
{
+ struct tls_data *data = get_tls_data();
__winetest_va_list valist;
+ printf( "%s:%d:%s ", data->current_file, data->current_line, winetest_elapsed() );
__winetest_va_start( valist, msg );
- winetest_vprintf( msg, valist );
+ vprintf( msg, valist );
__winetest_va_end( valist );
}
+static void __winetest_cdecl winetest_print_context( const char *msgtype )
+{
+ struct tls_data *data = get_tls_data();
+ unsigned int i;
+
+ winetest_printf( "%s", msgtype );
+ for (i = 0; i < data->context_count; ++i)
+ printf( "%s: ", data->context[i] );
+}
void winetest_subtest( const char* name )
{
@@ -371,7 +371,7 @@ int winetest_vok( int condition, const char *msg, __winetest_va_list args )
{
if (condition)
{
- winetest_printf( "Test succeeded inside todo block: " );
+ winetest_print_context( "Test succeeded inside todo block: " );
vprintf(msg, args);
InterlockedIncrement(&todo_failures);
return 0;
@@ -383,7 +383,7 @@ int winetest_vok( int condition, const char *msg, __winetest_va_list args )
{
if (winetest_debug > 0)
{
- winetest_printf( "Test marked todo: " );
+ winetest_print_context( "Test marked todo: " );
vprintf(msg, args);
}
InterlockedIncrement(&todo_successes);
@@ -397,7 +397,7 @@ int winetest_vok( int condition, const char *msg, __winetest_va_list args )
{
if (!condition)
{
- winetest_printf( "Test failed: " );
+ winetest_print_context( "Test failed: " );
vprintf(msg, args);
InterlockedIncrement(&failures);
return 0;
@@ -407,7 +407,7 @@ int winetest_vok( int condition, const char *msg, __winetest_va_list args )
if (winetest_report_success ||
(winetest_time && GetTickCount() >= winetest_last_time + 1000))
{
- winetest_printf( "Test succeeded\n" );
+ winetest_printf("Test succeeded\n");
}
InterlockedIncrement(&successes);
return 1;
@@ -432,8 +432,9 @@ void __winetest_cdecl winetest_trace( const char *msg, ... )
return;
if (winetest_add_line() < winetest_mute_threshold)
{
+ winetest_print_context( "" );
__winetest_va_start(valist, msg);
- winetest_vprintf( msg, valist );
+ vprintf( msg, valist );
__winetest_va_end(valist);
}
else
@@ -444,7 +445,7 @@ void winetest_vskip( const char *msg, __winetest_va_list args )
{
if (winetest_add_line() < winetest_mute_threshold)
{
- winetest_printf( "Tests skipped: " );
+ winetest_print_context( "Tests skipped: " );
vprintf(msg, args);
InterlockedIncrement(&skipped);
}
--
2.20.1
More information about the wine-devel
mailing list