kernel32/tests: Get rid of assert() in process.c

André Hentschel nerv at dawncrow.de
Fri Feb 21 15:07:41 CST 2014


---
 dlls/kernel32/tests/process.c | 106 +++++++++++++++++++++++++++---------------
 1 file changed, 69 insertions(+), 37 deletions(-)

diff --git a/dlls/kernel32/tests/process.c b/dlls/kernel32/tests/process.c
index 218a0d3..7ea7913 100644
--- a/dlls/kernel32/tests/process.c
+++ b/dlls/kernel32/tests/process.c
@@ -19,7 +19,6 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
-#include <assert.h>
 #include <stdarg.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -94,7 +93,11 @@ static char*    grab_memory(size_t len)
     /* align on dword */
     len = (len + 3) & ~3;
     memory_index += len;
-    assert(memory_index <= memory + sizeof(memory));
+    if (memory_index > memory + sizeof(memory))
+    {
+        ok(0, "Index out of bounds\n");
+        return NULL;
+    }
     return ret;
 }
 
@@ -112,7 +115,8 @@ static const char* encodeA(const char* str)
 
     if (!str) return "";
     len = strlen(str) + 1;
-    ptr = grab_memory(len * 2 + 1);
+    if (!(ptr = grab_memory(len * 2 + 1)))
+        return NULL;
     for (i = 0; i < len; i++)
         sprintf(&ptr[i * 2], "%02x", (unsigned char)str[i]);
     ptr[2 * len] = '\0';
@@ -126,8 +130,8 @@ static const char* encodeW(const WCHAR* str)
 
     if (!str) return "";
     len = lstrlenW(str) + 1;
-    ptr = grab_memory(len * 4 + 1);
-    assert(ptr);
+    if (!(ptr = grab_memory(len * 4 + 1)))
+        return NULL;
     for (i = 0; i < len; i++)
         sprintf(&ptr[i * 4], "%04x", (unsigned int)(unsigned short)str[i]);
     ptr[4 * len] = '\0';
@@ -138,8 +142,9 @@ static unsigned decode_char(char c)
 {
     if (c >= '0' && c <= '9') return c - '0';
     if (c >= 'a' && c <= 'f') return c - 'a' + 10;
-    assert(c >= 'A' && c <= 'F');
-    return c - 'A' + 10;
+    if (c >= 'A' && c <= 'F') return c - 'A' + 10;
+    ok(0, "Bad character: 0x%x\n", c);
+    return 0xff;
 }
 
 static char*    decodeA(const char* str)
@@ -149,7 +154,8 @@ static char*    decodeA(const char* str)
 
     len = strlen(str) / 2;
     if (!len--) return NULL;
-    ptr = grab_memory(len + 1);
+    if (!(ptr = grab_memory(len + 1)))
+        return NULL;
     for (i = 0; i < len; i++)
         ptr[i] = (decode_char(str[2 * i]) << 4) | decode_char(str[2 * i + 1]);
     ptr[len] = '\0';
@@ -167,7 +173,8 @@ static WCHAR*   decodeW(const char* str)
 
     len = strlen(str) / 4;
     if (!len--) return NULL;
-    ptr = (WCHAR*)grab_memory(len * 2 + 1);
+    if (!(ptr = (WCHAR*)grab_memory(len * 2 + 1)))
+        return NULL;
     for (i = 0; i < len; i++)
         ptr[i] = (decode_char(str[4 * i]) << 12) |
             (decode_char(str[4 * i + 1]) << 8) |
@@ -428,7 +435,7 @@ static char* getChildString(const char* sect, const char* key)
 
     GetPrivateProfileStringA(sect, key, "-", buf, sizeof(buf), resfile);
     if (buf[0] == '\0' || (buf[0] == '-' && buf[1] == '\0')) return NULL;
-    assert(!(strlen(buf) & 1));
+    ok(!(strlen(buf) & 1), "Wrong alignment\n");
     ret = decodeA(buf);
     return ret;
 }
@@ -440,7 +447,7 @@ static WCHAR* getChildStringW(const char* sect, const char* key)
 
     GetPrivateProfileStringA(sect, key, "-", buf, sizeof(buf), resfile);
     if (buf[0] == '\0' || (buf[0] == '-' && buf[1] == '\0')) return NULL;
-    assert(!(strlen(buf) & 1));
+    ok(!(strlen(buf) & 1), "Wrong alignment\n");
     ret = decodeW(buf);
     return ret;
 }
@@ -524,6 +531,7 @@ static void test_Startup(void)
     char                buffer[MAX_PATH];
     PROCESS_INFORMATION	info;
     STARTUPINFOA	startup,si;
+    BOOL                ret;
     char *result;
     static CHAR title[]   = "I'm the title string",
                 desktop[] = "winsta0\\default",
@@ -556,7 +564,8 @@ static void test_Startup(void)
     okChildInt("StartupInfoA", "dwFlags", startup.dwFlags);
     okChildInt("StartupInfoA", "wShowWindow", startup.wShowWindow);
     release_memory();
-    assert(DeleteFileA(resfile) != 0);
+    ret = DeleteFileA(resfile);
+    ok(ret, "DeleteFileA: error %d\n", GetLastError());
 
     /* not so simplistic now */
     memset(&startup, 0, sizeof(startup));
@@ -594,7 +603,8 @@ static void test_Startup(void)
     okChildInt("StartupInfoA", "dwFlags", startup.dwFlags);
     okChildInt("StartupInfoA", "wShowWindow", startup.wShowWindow);
     release_memory();
-    assert(DeleteFileA(resfile) != 0);
+    ret = DeleteFileA(resfile);
+    ok(ret, "DeleteFileA: error %d\n", GetLastError());
 
     /* not so simplistic now */
     memset(&startup, 0, sizeof(startup));
@@ -632,7 +642,8 @@ static void test_Startup(void)
     okChildInt("StartupInfoA", "dwFlags", startup.dwFlags);
     okChildInt("StartupInfoA", "wShowWindow", startup.wShowWindow);
     release_memory();
-    assert(DeleteFileA(resfile) != 0);
+    ret = DeleteFileA(resfile);
+    ok(ret, "DeleteFileA: error %d\n", GetLastError());
 
     /* not so simplistic now */
     memset(&startup, 0, sizeof(startup));
@@ -670,7 +681,8 @@ static void test_Startup(void)
     okChildInt("StartupInfoA", "dwFlags", startup.dwFlags);
     okChildInt("StartupInfoA", "wShowWindow", startup.wShowWindow);
     release_memory();
-    assert(DeleteFileA(resfile) != 0);
+    ret = DeleteFileA(resfile);
+    ok(ret, "DeleteFileA: error %d\n", GetLastError());
 
     /* not so simplistic now */
     memset(&startup, 0, sizeof(startup));
@@ -710,7 +722,8 @@ static void test_Startup(void)
     okChildInt("StartupInfoA", "dwFlags", startup.dwFlags);
     okChildInt("StartupInfoA", "wShowWindow", startup.wShowWindow);
     release_memory();
-    assert(DeleteFileA(resfile) != 0);
+    ret = DeleteFileA(resfile);
+    ok(ret, "DeleteFileA: error %d\n", GetLastError());
 
     /* not so simplistic now */
     memset(&startup, 0, sizeof(startup));
@@ -748,7 +761,8 @@ static void test_Startup(void)
     okChildInt("StartupInfoA", "dwFlags", startup.dwFlags);
     okChildInt("StartupInfoA", "wShowWindow", startup.wShowWindow);
     release_memory();
-    assert(DeleteFileA(resfile) != 0);
+    ret = DeleteFileA(resfile);
+    ok(ret, "DeleteFileA: error %d\n", GetLastError());
 
     /* not so simplistic now */
     memset(&startup, 0, sizeof(startup));
@@ -786,7 +800,8 @@ static void test_Startup(void)
     okChildInt("StartupInfoA", "dwFlags", startup.dwFlags);
     okChildInt("StartupInfoA", "wShowWindow", startup.wShowWindow);
     release_memory();
-    assert(DeleteFileA(resfile) != 0);
+    ret = DeleteFileA(resfile);
+    ok(ret, "DeleteFileA: error %d\n", GetLastError());
 
     /* TODO: test for A/W and W/A and W/W */
 }
@@ -818,7 +833,8 @@ static void test_CommandLine(void)
     okChildString("Arguments", "argvA4", NULL);
     okChildString("Arguments", "CommandLineA", buffer);
     release_memory();
-    assert(DeleteFileA(resfile) != 0);
+    ret = DeleteFileA(resfile);
+    ok(ret, "DeleteFileA: error %d\n", GetLastError());
 
     memset(&startup, 0, sizeof(startup));
     startup.cb = sizeof(startup);
@@ -841,7 +857,8 @@ static void test_CommandLine(void)
     okChildString("Arguments", "argvA6", NULL);
     okChildString("Arguments", "CommandLineA", buffer);
     release_memory();
-    assert(DeleteFileA(resfile) != 0);
+    ret = DeleteFileA(resfile);
+    ok(ret, "DeleteFileA: error %d\n", GetLastError());
 
     /* Test for Bug1330 to show that XP doesn't change '/' to '\\' in argv[0]*/
     get_file_name(resfile);
@@ -857,7 +874,8 @@ static void test_CommandLine(void)
     sprintf(buffer, "./%s", exename);
     okChildString("Arguments", "argvA0", buffer);
     release_memory();
-    assert(DeleteFileA(resfile) != 0);
+    ret = DeleteFileA(resfile);
+    ok(ret, "DeleteFileA: error %d\n", GetLastError());
 
     get_file_name(resfile);
     /* Use exename to avoid buffer containing things like 'C:' */
@@ -872,12 +890,12 @@ static void test_CommandLine(void)
     sprintf(buffer, ".\\%s", exename);
     okChildString("Arguments", "argvA0", buffer);
     release_memory();
-    assert(DeleteFileA(resfile) != 0);
+    ret = DeleteFileA(resfile);
+    ok(ret, "DeleteFileA: error %d\n", GetLastError());
     
     get_file_name(resfile);
     GetFullPathNameA(selfname, MAX_PATH, fullpath, &lpFilePart);
-    assert ( lpFilePart != 0);
-    *(lpFilePart -1 ) = 0;
+    if (lpFilePart) *(lpFilePart -1 ) = 0;
     p = strrchr(fullpath, '\\');
     /* Use exename to avoid buffer containing things like 'C:' */
     if (p) sprintf(buffer, "..%s/%s tests/process.c \"%s\" \"a\\\"b\\\\\" c\\\" d", p, exename, resfile);
@@ -893,13 +911,13 @@ static void test_CommandLine(void)
     else sprintf(buffer, "./%s", exename);
     okChildString("Arguments", "argvA0", buffer);
     release_memory();
-    assert(DeleteFileA(resfile) != 0);
+    ret = DeleteFileA(resfile);
+    ok(ret, "DeleteFileA: error %d\n", GetLastError());
 
     /* Using AppName */
     get_file_name(resfile);
     GetFullPathNameA(selfname, MAX_PATH, fullpath, &lpFilePart);
-    assert ( lpFilePart != 0);
-    *(lpFilePart -1 ) = 0;
+    if (lpFilePart) *(lpFilePart -1 ) = 0;
     p = strrchr(fullpath, '\\');
     /* Use exename to avoid buffer containing things like 'C:' */
     if (p) sprintf(buffer, "..%s/%s", p, exename);
@@ -917,7 +935,8 @@ static void test_CommandLine(void)
     okChildString("Arguments", "CommandLineA", buffer2);
     okChildStringWA("Arguments", "CommandLineW", buffer2);
     release_memory();
-    assert(DeleteFileA(resfile) != 0);
+    ret = DeleteFileA(resfile);
+    ok(ret, "DeleteFileA: error %d\n", GetLastError());
 
     if (0) /* Test crashes on NT-based Windows. */
     {
@@ -992,6 +1011,7 @@ static void test_Directory(void)
     char                buffer[MAX_PATH];
     PROCESS_INFORMATION	info;
     STARTUPINFOA	startup;
+    BOOL                ret;
     char windir[MAX_PATH];
     static CHAR cmdline[] = "winver.exe";
 
@@ -1012,7 +1032,8 @@ static void test_Directory(void)
 
     okChildIString("Misc", "CurrDirA", windir);
     release_memory();
-    assert(DeleteFileA(resfile) != 0);
+    ret = DeleteFileA(resfile);
+    ok(ret, "DeleteFileA: error %d\n", GetLastError());
 
     /* search PATH for the exe if directory is NULL */
     ok(CreateProcessA(NULL, cmdline, NULL, NULL, FALSE, 0L, NULL, NULL, &startup, &info), "CreateProcess\n");
@@ -1095,6 +1116,7 @@ static void test_Environment(void)
     char                buffer[MAX_PATH];
     PROCESS_INFORMATION	info;
     STARTUPINFOA	startup;
+    BOOL                ret;
     char                *child_env;
     int                 child_env_len;
     char                *ptr;
@@ -1119,7 +1141,8 @@ static void test_Environment(void)
     env = GetEnvironmentStringsA();
     cmpEnvironment(env);
     release_memory();
-    assert(DeleteFileA(resfile) != 0);
+    ret = DeleteFileA(resfile);
+    ok(ret, "DeleteFileA: error %d\n", GetLastError());
 
     memset(&startup, 0, sizeof(startup));
     startup.cb = sizeof(startup);
@@ -1178,7 +1201,8 @@ static void test_Environment(void)
     HeapFree(GetProcessHeap(), 0, child_env);
     FreeEnvironmentStringsA(env);
     release_memory();
-    assert(DeleteFileA(resfile) != 0);
+    ret = DeleteFileA(resfile);
+    ok(ret, "DeleteFileA: error %d\n", GetLastError());
 }
 
 static  void    test_SuspendFlag(void)
@@ -1187,6 +1211,7 @@ static  void    test_SuspendFlag(void)
     PROCESS_INFORMATION	info;
     STARTUPINFOA       startup, us;
     DWORD               exit_status;
+    BOOL                ret;
     char *result;
 
     /* let's start simplistic */
@@ -1226,7 +1251,8 @@ static  void    test_SuspendFlag(void)
     okChildInt("StartupInfoA", "dwFlags", startup.dwFlags);
     okChildInt("StartupInfoA", "wShowWindow", startup.wShowWindow);
     release_memory();
-    assert(DeleteFileA(resfile) != 0);
+    ret = DeleteFileA(resfile);
+    ok(ret, "DeleteFileA: error %d\n", GetLastError());
 }
 
 static  void    test_DebuggingFlag(void)
@@ -1236,6 +1262,7 @@ static  void    test_DebuggingFlag(void)
     PROCESS_INFORMATION	info;
     STARTUPINFOA       startup, us;
     DEBUG_EVENT         de;
+    BOOL                ret;
     unsigned            dbg = 0;
     char *result;
 
@@ -1288,7 +1315,8 @@ static  void    test_DebuggingFlag(void)
     okChildInt("StartupInfoA", "dwFlags", startup.dwFlags);
     okChildInt("StartupInfoA", "wShowWindow", startup.wShowWindow);
     release_memory();
-    assert(DeleteFileA(resfile) != 0);
+    ret = DeleteFileA(resfile);
+    ok(ret, "DeleteFileA: error %d\n", GetLastError());
 }
 
 static BOOL is_console(HANDLE h)
@@ -1309,7 +1337,7 @@ static void test_Console(void)
     HANDLE              hChildIn, hChildInInh, hChildOut, hChildOutInh, hParentIn, hParentOut;
     const char*         msg = "This is a std-handle inheritance test.";
     unsigned            msg_len;
-    BOOL                run_tests = TRUE;
+    BOOL                run_tests = TRUE, ret;
     char *result;
 
     memset(&startup, 0, sizeof(startup));
@@ -1435,7 +1463,8 @@ static void test_Console(void)
     ok(sbiC.dwCursorPosition.Y == (sbi.dwCursorPosition.Y ^ 1), "Wrong cursor position\n");
 
     release_memory();
-    assert(DeleteFileA(resfile) != 0);
+    ret = DeleteFileA(resfile);
+    ok(ret, "DeleteFileA: error %d\n", GetLastError());
 
     ok(CreatePipe(&hParentIn, &hChildOut, NULL, 0), "Creating parent-input pipe\n");
     ok(DuplicateHandle(GetCurrentProcess(), hChildOut, GetCurrentProcess(), 
@@ -1478,7 +1507,8 @@ static void test_Console(void)
     okChildString("StdHandle", "msg", msg);
 
     release_memory();
-    assert(DeleteFileA(resfile) != 0);
+    ret = DeleteFileA(resfile);
+    ok(ret, "DeleteFileA: error %d\n", GetLastError());
 }
 
 static  void    test_ExitCode(void)
@@ -1487,6 +1517,7 @@ static  void    test_ExitCode(void)
     PROCESS_INFORMATION	info;
     STARTUPINFOA	startup;
     DWORD               code;
+    BOOL                ret;
 
     /* let's start simplistic */
     memset(&startup, 0, sizeof(startup));
@@ -1507,7 +1538,8 @@ static  void    test_ExitCode(void)
     okChildInt("ExitCode", "value", code);
 
     release_memory();
-    assert(DeleteFileA(resfile) != 0);
+    ret = DeleteFileA(resfile);
+    ok(ret, "DeleteFileA: error %d\n", GetLastError());
 }
 
 static void test_OpenProcess(void)
-- 
1.8.1.2





More information about the wine-patches mailing list