Commit e767a2c0 authored by Francois Gouget's avatar Francois Gouget Committed by Alexandre Julliard

tests: Add a win_skip() function to allow for missing Windows functionality that…

tests: Add a win_skip() function to allow for missing Windows functionality that must be present in Wine.
parent ad2c9211
...@@ -69,28 +69,34 @@ extern void winetest_wait_child_process( HANDLE process ); ...@@ -69,28 +69,34 @@ extern void winetest_wait_child_process( HANDLE process );
#endif #endif
extern int broken( int condition ); extern int broken( int condition );
extern int winetest_vok( int condition, const char *msg, va_list ap );
extern void winetest_vskip( const char *msg, va_list ap );
#ifdef __GNUC__ #ifdef __GNUC__
extern int winetest_ok( int condition, const char *msg, ... ) __attribute__((format (printf,2,3) )); extern int winetest_ok( int condition, const char *msg, ... ) __attribute__((format (printf,2,3) ));
extern void winetest_skip( const char *msg, ... ) __attribute__((format (printf,1,2))); extern void winetest_skip( const char *msg, ... ) __attribute__((format (printf,1,2)));
extern void winetest_win_skip( const char *msg, ... ) __attribute__((format (printf,1,2)));
extern void winetest_trace( const char *msg, ... ) __attribute__((format (printf,1,2))); extern void winetest_trace( const char *msg, ... ) __attribute__((format (printf,1,2)));
#else /* __GNUC__ */ #else /* __GNUC__ */
extern int winetest_ok( int condition, const char *msg, ... ); extern int winetest_ok( int condition, const char *msg, ... );
extern void winetest_skip( const char *msg, ... ); extern void winetest_skip( const char *msg, ... );
extern void winetest_win_skip( const char *msg, ... );
extern void winetest_trace( const char *msg, ... ); extern void winetest_trace( const char *msg, ... );
#endif /* __GNUC__ */ #endif /* __GNUC__ */
#define ok_(file, line) (winetest_set_location(file, line), 0) ? 0 : winetest_ok #define ok_(file, line) (winetest_set_location(file, line), 0) ? 0 : winetest_ok
#define skip_(file, line) (winetest_set_location(file, line), 0) ? (void)0 : winetest_skip #define skip_(file, line) (winetest_set_location(file, line), 0) ? (void)0 : winetest_skip
#define trace_(file, line) (winetest_set_location(file, line), 0) ? (void)0 : winetest_trace #define win_skip_(file, line) (winetest_set_location(file, line), 0) ? (void)0 : winetest_win_skip
#define trace_(file, line) (winetest_set_location(file, line), 0) ? (void)0 : winetest_trace
#define ok ok_(__FILE__, __LINE__) #define ok ok_(__FILE__, __LINE__)
#define skip skip_(__FILE__, __LINE__) #define skip skip_(__FILE__, __LINE__)
#define trace trace_(__FILE__, __LINE__) #define win_skip win_skip_(__FILE__, __LINE__)
#define trace trace_(__FILE__, __LINE__)
#define todo(platform) for (winetest_start_todo(platform); \ #define todo(platform) for (winetest_start_todo(platform); \
winetest_loop_todo(); \ winetest_loop_todo(); \
...@@ -241,9 +247,8 @@ int broken( int condition ) ...@@ -241,9 +247,8 @@ int broken( int condition )
* Return: * Return:
* 0 if condition does not have the expected value, 1 otherwise * 0 if condition does not have the expected value, 1 otherwise
*/ */
int winetest_ok( int condition, const char *msg, ... ) int winetest_vok( int condition, const char *msg, va_list args )
{ {
va_list valist;
tls_data* data=get_tls_data(); tls_data* data=get_tls_data();
if (data->todo_level) if (data->todo_level)
...@@ -254,10 +259,8 @@ int winetest_ok( int condition, const char *msg, ... ) ...@@ -254,10 +259,8 @@ int winetest_ok( int condition, const char *msg, ... )
data->current_file, data->current_line ); data->current_file, data->current_line );
if (msg[0]) if (msg[0])
{ {
va_start(valist, msg);
fprintf(stdout,": "); fprintf(stdout,": ");
vfprintf(stdout, msg, valist); vfprintf(stdout, msg, args);
va_end(valist);
} }
InterlockedIncrement(&todo_failures); InterlockedIncrement(&todo_failures);
return 0; return 0;
...@@ -272,10 +275,8 @@ int winetest_ok( int condition, const char *msg, ... ) ...@@ -272,10 +275,8 @@ int winetest_ok( int condition, const char *msg, ... )
data->current_file, data->current_line ); data->current_file, data->current_line );
if (msg[0]) if (msg[0])
{ {
va_start(valist, msg);
fprintf( stdout,": "); fprintf( stdout,": ");
vfprintf(stdout, msg, valist); vfprintf(stdout, msg, args);
va_end(valist);
} }
InterlockedIncrement(&failures); InterlockedIncrement(&failures);
return 0; return 0;
...@@ -291,6 +292,17 @@ int winetest_ok( int condition, const char *msg, ... ) ...@@ -291,6 +292,17 @@ int winetest_ok( int condition, const char *msg, ... )
return 1; return 1;
} }
int winetest_ok( int condition, const char *msg, ... )
{
va_list valist;
int rc;
va_start(valist, msg);
rc=winetest_vok(condition, msg, valist);
va_end(valist);
return rc;
}
void winetest_trace( const char *msg, ... ) void winetest_trace( const char *msg, ... )
{ {
va_list valist; va_list valist;
...@@ -305,16 +317,32 @@ void winetest_trace( const char *msg, ... ) ...@@ -305,16 +317,32 @@ void winetest_trace( const char *msg, ... )
} }
} }
void winetest_skip( const char *msg, ... ) void winetest_vskip( const char *msg, va_list args )
{ {
va_list valist;
tls_data* data=get_tls_data(); tls_data* data=get_tls_data();
fprintf( stdout, "%s:%d: Tests skipped: ", data->current_file, data->current_line ); fprintf( stdout, "%s:%d: Tests skipped: ", data->current_file, data->current_line );
vfprintf(stdout, msg, args);
skipped++;
}
void winetest_skip( const char *msg, ... )
{
va_list valist;
va_start(valist, msg); va_start(valist, msg);
vfprintf(stdout, msg, valist); winetest_vskip(msg, valist);
va_end(valist);
}
void winetest_win_skip( const char *msg, ... )
{
va_list valist;
va_start(valist, msg);
if (strcmp(winetest_platform, "windows") == 0)
winetest_vskip(msg, valist);
else
winetest_vok(0, msg, valist);
va_end(valist); va_end(valist);
skipped++;
} }
void winetest_start_todo( const char* platform ) void winetest_start_todo( const char* platform )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment