Francois Gouget : tests: Add a win_skip() function to allow for missing Windows functionality that must be present in Wine .

Alexandre Julliard julliard at winehq.org
Wed Jun 11 05:59:28 CDT 2008


Module: wine
Branch: master
Commit: e767a2c04de8228d329c0524009ef5dd01431cda
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=e767a2c04de8228d329c0524009ef5dd01431cda

Author: Francois Gouget <fgouget at free.fr>
Date:   Tue Jun 10 18:29:46 2008 +0200

tests: Add a win_skip() function to allow for missing Windows functionality that must be present in Wine.

---

 include/wine/test.h |   64 ++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 46 insertions(+), 18 deletions(-)

diff --git a/include/wine/test.h b/include/wine/test.h
index f7a0065..f3de956 100644
--- a/include/wine/test.h
+++ b/include/wine/test.h
@@ -69,28 +69,34 @@ extern void winetest_wait_child_process( HANDLE process );
 #endif
 
 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__
 
 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_win_skip( const char *msg, ... ) __attribute__((format (printf,1,2)));
 extern void winetest_trace( const char *msg, ... ) __attribute__((format (printf,1,2)));
 
 #else /* __GNUC__ */
 
 extern int winetest_ok( int condition, 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, ... );
 
 #endif /* __GNUC__ */
 
-#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 trace_(file, line)  (winetest_set_location(file, line), 0) ? (void)0 : winetest_trace
+#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 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 skip   skip_(__FILE__, __LINE__)
-#define trace  trace_(__FILE__, __LINE__)
+#define ok       ok_(__FILE__, __LINE__)
+#define skip     skip_(__FILE__, __LINE__)
+#define win_skip win_skip_(__FILE__, __LINE__)
+#define trace    trace_(__FILE__, __LINE__)
 
 #define todo(platform) for (winetest_start_todo(platform); \
                             winetest_loop_todo(); \
@@ -241,9 +247,8 @@ int broken( int condition )
  * Return:
  *   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();
 
     if (data->todo_level)
@@ -254,10 +259,8 @@ int winetest_ok( int condition, const char *msg, ... )
                      data->current_file, data->current_line );
             if (msg[0])
             {
-                va_start(valist, msg);
                 fprintf(stdout,": ");
-                vfprintf(stdout, msg, valist);
-                va_end(valist);
+                vfprintf(stdout, msg, args);
             }
             InterlockedIncrement(&todo_failures);
             return 0;
@@ -272,10 +275,8 @@ int winetest_ok( int condition, const char *msg, ... )
                      data->current_file, data->current_line );
             if (msg[0])
             {
-                va_start(valist, msg);
                 fprintf( stdout,": ");
-                vfprintf(stdout, msg, valist);
-                va_end(valist);
+                vfprintf(stdout, msg, args);
             }
             InterlockedIncrement(&failures);
             return 0;
@@ -291,6 +292,17 @@ int winetest_ok( int condition, const char *msg, ... )
     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, ... )
 {
     va_list valist;
@@ -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();
 
     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);
-    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);
-    skipped++;
 }
 
 void winetest_start_todo( const char* platform )




More information about the wine-cvs mailing list