shell32/tests: Arrange for the shell_execute{_ex}() calls to set the test line.

Francois Gouget fgouget at codeweavers.com
Thu Jan 14 17:57:17 CST 2016


This makes it possible to attribute their internal test results to the relevant test_xxx() function.
This implies that they must not make calls that would reset the test line.

Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
---
 dlls/shell32/tests/shlexec.c | 39 ++++++++++++++++++++-------------------
 1 file changed, 20 insertions(+), 19 deletions(-)

diff --git a/dlls/shell32/tests/shlexec.c b/dlls/shell32/tests/shlexec.c
index 1aa6ab1..6ad5a37 100644
--- a/dlls/shell32/tests/shlexec.c
+++ b/dlls/shell32/tests/shlexec.c
@@ -95,12 +95,12 @@ static int _todo_wait = 0;
 
 static char shell_call[2048]="";
 static int bad_shellexecute = 0;
-static INT_PTR shell_execute(LPCSTR verb, LPCSTR file, LPCSTR parameters, LPCSTR directory)
+static INT_PTR _shell_execute(LPCSTR verb, LPCSTR file, LPCSTR parameters, LPCSTR directory)
 {
     INT_PTR rc, rcEmpty = 0;
 
     if(!verb)
-        rcEmpty = shell_execute("", file, parameters, directory);
+        rcEmpty = _shell_execute("", file, parameters, directory);
 
     strcpy(shell_call, "ShellExecute(");
     strcat_param(shell_call, "verb", verb);
@@ -109,7 +109,7 @@ static INT_PTR shell_execute(LPCSTR verb, LPCSTR file, LPCSTR parameters, LPCSTR
     strcat_param(shell_call, "dir", directory);
     strcat(shell_call, ")");
     if (winetest_debug > 1)
-        trace("%s\n", shell_call);
+        winetest_trace("Called %s\n", shell_call);
 
     DeleteFileA(child_file);
     SetLastError(0xcafebabe);
@@ -138,9 +138,9 @@ static INT_PTR shell_execute(LPCSTR verb, LPCSTR file, LPCSTR parameters, LPCSTR
             }
         }
         if (!_todo_wait)
-            ok(wait_rc==WAIT_OBJECT_0 || rc <= 32, "%s WaitForSingleObject returned %d\n", shell_call, wait_rc);
+            winetest_ok(wait_rc==WAIT_OBJECT_0 || rc <= 32, "%s WaitForSingleObject returned %d\n", shell_call, wait_rc);
         else todo_wine
-            ok(wait_rc==WAIT_OBJECT_0 || rc <= 32, "%s WaitForSingleObject returned %d\n", shell_call, wait_rc);
+            winetest_ok(wait_rc==WAIT_OBJECT_0 || rc <= 32, "%s WaitForSingleObject returned %d\n", shell_call, wait_rc);
     }
     /* The child process may have changed the result file, so let profile
      * functions know about it
@@ -153,14 +153,15 @@ static INT_PTR shell_execute(LPCSTR verb, LPCSTR file, LPCSTR parameters, LPCSTR
     {
         if (rc != rcEmpty && rcEmpty == SE_ERR_NOASSOC) /* NT4 */
             bad_shellexecute = 1;
-        ok(rc == rcEmpty || broken(rc != rcEmpty && rcEmpty == SE_ERR_NOASSOC) /* NT4 */,
-           "%s Got different return value with empty string: %lu %lu\n", shell_call, rc, rcEmpty);
+        winetest_ok(rc == rcEmpty || broken(rc != rcEmpty && rcEmpty == SE_ERR_NOASSOC) /* NT4 */,
+                    "%s Got different return value with empty string: %lu %lu\n", shell_call, rc, rcEmpty);
     }
 
     return rc;
 }
+#define shell_execute (winetest_set_location(__FILE__, __LINE__), 0) ? 0 : _shell_execute
 
-static INT_PTR shell_execute_ex(DWORD mask, LPCSTR verb, LPCSTR file,
+static INT_PTR _shell_execute_ex(DWORD mask, LPCSTR verb, LPCSTR file,
                                 LPCSTR parameters, LPCSTR directory,
                                 LPCSTR class)
 {
@@ -182,7 +183,7 @@ static INT_PTR shell_execute_ex(DWORD mask, LPCSTR verb, LPCSTR file,
     strcat_param(shell_call, "class", class);
     strcat(shell_call, ")");
     if (winetest_debug > 1)
-        trace("%s\n", shell_call);
+        winetest_trace("Called %s\n", shell_call);
 
     sei.cbSize=sizeof(sei);
     sei.fMask=mask;
@@ -204,8 +205,8 @@ static INT_PTR shell_execute_ex(DWORD mask, LPCSTR verb, LPCSTR file,
     SetLastError(0xcafebabe);
     success=ShellExecuteExA(&sei);
     rc=(INT_PTR)sei.hInstApp;
-    ok((success && rc > 32) || (!success && rc <= 32),
-       "%s rc=%d and hInstApp=%ld is not allowed\n", shell_call, success, rc);
+    winetest_ok((success && rc > 32) || (!success && rc <= 32),
+                "%s rc=%d and hInstApp=%ld is not allowed\n", shell_call, success, rc);
 
     if (rc > 32)
     {
@@ -213,16 +214,16 @@ static INT_PTR shell_execute_ex(DWORD mask, LPCSTR verb, LPCSTR file,
         if (sei.hProcess!=NULL)
         {
             wait_rc=WaitForSingleObject(sei.hProcess, 5000);
-            ok(wait_rc==WAIT_OBJECT_0, "WaitForSingleObject(hProcess) returned %d\n", wait_rc);
+            winetest_ok(wait_rc==WAIT_OBJECT_0, "WaitForSingleObject(hProcess) returned %d\n", wait_rc);
         }
         wait_rc=WaitForSingleObject(hEvent, 5000);
         if (!_todo_wait)
-            ok(wait_rc==WAIT_OBJECT_0, "WaitForSingleObject returned %d\n", wait_rc);
+            winetest_ok(wait_rc==WAIT_OBJECT_0, "WaitForSingleObject returned %d\n", wait_rc);
         else todo_wine
-            ok(wait_rc==WAIT_OBJECT_0, "WaitForSingleObject returned %d\n", wait_rc);
+            winetest_ok(wait_rc==WAIT_OBJECT_0, "WaitForSingleObject returned %d\n", wait_rc);
     }
     else
-        ok(sei.hProcess==NULL, "%s returned a process handle %p\n", shell_call, sei.hProcess);
+       winetest_ok(sei.hProcess==NULL, "%s returned a process handle %p\n", shell_call, sei.hProcess);
 
     /* The child process may have changed the result file, so let profile
      * functions know about it
@@ -233,7 +234,7 @@ static INT_PTR shell_execute_ex(DWORD mask, LPCSTR verb, LPCSTR file,
 
     return rc;
 }
-
+#define shell_execute_ex (winetest_set_location(__FILE__, __LINE__), 0) ? 0 : _shell_execute_ex
 
 
 /***
@@ -670,14 +671,14 @@ static void dump_child(void)
         int i, c;
 
         str=getChildString("Arguments", "cmdlineA");
-        trace("cmdlineA='%s'\n", str);
+        winetest_trace("cmdlineA='%s'\n", str);
         c=GetPrivateProfileIntA("Arguments", "argcA", -1, child_file);
-        trace("argcA=%d\n",c);
+        winetest_trace("argcA=%d\n",c);
         for (i=0;i<c;i++)
         {
             sprintf(key, "argvA%d", i);
             str=getChildString("Arguments", key);
-            trace("%s='%s'\n", key, str);
+            winetest_trace("%s='%s'\n", key, str);
         }
     }
 }
-- 
2.6.4




More information about the wine-patches mailing list