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