Author: cwittich
Date: Sat Aug 22 18:42:11 2009
New Revision: 42853
URL:
http://svn.reactos.org/svn/reactos?rev=42853&view=rev
Log:
sync kernel32_winetest with wine 1.1.28
Modified:
trunk/rostests/winetests/kernel32/codepage.c
trunk/rostests/winetests/kernel32/drive.c
trunk/rostests/winetests/kernel32/format_msg.c
trunk/rostests/winetests/kernel32/process.c
trunk/rostests/winetests/kernel32/profile.c
trunk/rostests/winetests/kernel32/thread.c
trunk/rostests/winetests/kernel32/virtual.c
trunk/rostests/winetests/kernel32/volume.c
Modified: trunk/rostests/winetests/kernel32/codepage.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/kernel32/codepa…
==============================================================================
--- trunk/rostests/winetests/kernel32/codepage.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/kernel32/codepage.c [iso-8859-1] Sat Aug 22 18:42:11 2009
@@ -320,7 +320,7 @@
SetLastError(0xdeadbeef);
ret = WideCharToMultiByte(950, 0, dbwcs, -1, mbs, sizeof(mbs), NULL,
bUsedDefaultChar);
ok(ret == 5, "ret is %d\n", ret);
- ok(!strcmp(mbs, "µH©Ò"), "mbs is %s\n", mbs);
+ ok(!strcmp(mbs, "\xb5H\xa9\xd2"), "mbs is %s\n", mbs);
if(bUsedDefaultChar) ok(*bUsedDefaultChar == FALSE, "bUsedDefaultChar is
%d\n", *bUsedDefaultChar);
ok(GetLastError() == 0xdeadbeef, "GetLastError() is %u\n",
GetLastError());
@@ -334,7 +334,7 @@
SetLastError(0xdeadbeef);
ret = WideCharToMultiByte(950, 0, dbwcs, 1, mbs, sizeof(mbs), NULL,
bUsedDefaultChar);
ok(ret == 2, "ret is %d\n", ret);
- ok(!strcmp(mbs, "µH"), "mbs is %s\n", mbs);
+ ok(!strcmp(mbs, "\xb5H"), "mbs is %s\n", mbs);
if(bUsedDefaultChar) ok(*bUsedDefaultChar == FALSE, "bUsedDefaultChar is
%d\n", *bUsedDefaultChar);
ok(GetLastError() == 0xdeadbeef, "GetLastError() is %u\n",
GetLastError());
Modified: trunk/rostests/winetests/kernel32/drive.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/kernel32/drive.…
==============================================================================
--- trunk/rostests/winetests/kernel32/drive.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/kernel32/drive.c [iso-8859-1] Sat Aug 22 18:42:11 2009
@@ -125,6 +125,7 @@
GetLastError() == ERROR_INVALID_DRIVE ||
GetLastError() == ERROR_PATH_NOT_FOUND ||
GetLastError() == ERROR_REQUEST_ABORTED ||
+ GetLastError() == ERROR_NETNAME_DELETED ||
GetLastError() == ERROR_UNRECOGNIZED_VOLUME,
"GetDiskFreeSpaceA(%s): ret=%d GetLastError=%d\n",
drive, ret, GetLastError());
@@ -144,6 +145,7 @@
GetLastError() == ERROR_INVALID_FUNCTION ||
GetLastError() == ERROR_PATH_NOT_FOUND ||
GetLastError() == ERROR_REQUEST_ABORTED ||
+ GetLastError() == ERROR_NETNAME_DELETED ||
GetLastError() == ERROR_UNRECOGNIZED_VOLUME,
"GetDiskFreeSpaceExA( %s ) failed. GetLastError=%d\n",
drive, GetLastError());
ok( bytes_per_sector == 0 || /* empty cd rom drive */
Modified: trunk/rostests/winetests/kernel32/format_msg.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/kernel32/format…
==============================================================================
--- trunk/rostests/winetests/kernel32/format_msg.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/kernel32/format_msg.c [iso-8859-1] Sat Aug 22 18:42:11 2009
@@ -50,13 +50,6 @@
lang_id, out, outsize, &list);
va_end(list);
return r;
-}
-
-static char buf[1024];
-static const char *debugstr_w(const WCHAR *str)
-{
- WideCharToMultiByte(CP_ACP, 0, str, -1, buf, sizeof(buf), NULL, NULL);
- return buf;
}
static void test_message_from_string_wide(void)
@@ -127,180 +120,180 @@
/* the basics */
r = FormatMessageW(FORMAT_MESSAGE_FROM_STRING, test, 0,
0, out, sizeof(out)/sizeof(WCHAR), NULL);
- ok(!lstrcmpW(test, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(test, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==4, "failed: r=%d\n", r);
/* using the format feature */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_1s, 0,
0, out, sizeof(out)/sizeof(WCHAR), test);
- ok(!lstrcmpW(test, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(test, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==4,"failed: r=%d\n", r);
/* no format */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_1, 0,
0, out, sizeof(out)/sizeof(WCHAR), test);
- ok(!lstrcmpW(test, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(test, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==4,"failed: r=%d\n", r);
/* two pieces */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_12, 0,
0, out, sizeof(out)/sizeof(WCHAR), te, st);
- ok(!lstrcmpW(test, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(test, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==4,"failed: r=%d\n", r);
/* three pieces */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_123, 0,
0, out, sizeof(out)/sizeof(WCHAR), t, s, e);
- ok(!lstrcmpW(test, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(test, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==4,"failed: r=%d\n", r);
/* s doesn't seem to work in format strings */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_s, 0,
0, out, sizeof(out)/sizeof(WCHAR), test);
- ok(!lstrcmpW(&fmt_s[1], out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(&fmt_s[1], out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==3, "failed: r=%d\n", r);
/* nor ls */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_ls, 0,
0, out, sizeof(out)/sizeof(WCHAR), test);
- ok(!lstrcmpW(&fmt_ls[1], out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(&fmt_ls[1], out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==4, "failed: r=%d\n", r);
/* nor S */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_S, 0,
0, out, sizeof(out)/sizeof(WCHAR), test);
- ok(!lstrcmpW(&fmt_S[1], out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(&fmt_S[1], out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==3, "failed: r=%d\n", r);
/* nor ws */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_ws, 0,
0, out, sizeof(out)/sizeof(WCHAR), test);
- ok(!lstrcmpW(&fmt_ws[1], out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(&fmt_ws[1], out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==4, "failed: r=%d\n", r);
/* as characters */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_123c, 0,
0, out, sizeof(out)/sizeof(WCHAR), 't', 'e', 's');
- ok(!lstrcmpW(test, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(test, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==4,"failed: r=%d\n", r);
/* lc is unicode */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_123lc, 0,
0, out, sizeof(out)/sizeof(WCHAR), 't', 'e', 's');
- ok(!lstrcmpW(test, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(test, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==4,"failed: r=%d\n", r);
/* wc is unicode */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_123wc, 0,
0, out, sizeof(out)/sizeof(WCHAR), 't', 'e', 's');
- ok(!lstrcmpW(test, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(test, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==4,"failed: r=%d\n", r);
/* C is unicode */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_123C, 0,
0, out, sizeof(out)/sizeof(WCHAR), 't', 'e', 's');
- ok(!lstrcmpW(test, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(test, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==4,"failed: r=%d\n", r);
/* some numbers */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_123d, 0,
0, out, sizeof(out)/sizeof(WCHAR), 1, 2, 3);
- ok(!lstrcmpW(s_123d, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(s_123d, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==3,"failed: r=%d\n", r);
/* a single digit with some spacing */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_14d, 0,
0, out, sizeof(out)/sizeof(WCHAR), 1);
- ok(!lstrcmpW(s_14d, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(s_14d, out), "failed out=%s\n", wine_dbgstr_w(out));
/* a single digit, left justified */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_1_4d, 0,
0, out, sizeof(out)/sizeof(CHAR), 1);
- ok(!lstrcmpW(s_1_4d, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(s_1_4d, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==4,"failed: r=%d\n", r);
/* two digit decimal number */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_14d, 0,
0, out, sizeof(out)/sizeof(WCHAR), 11);
- ok(!lstrcmpW(s_14d2, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(s_14d2, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==4,"failed: r=%d\n", r);
/* a hex number */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_14x, 0,
0, out, sizeof(out)/sizeof(WCHAR), 11);
- ok(!lstrcmpW(s_14x, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(s_14x, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==4,"failed: r=%d\n", r);
/* a hex number, upper case */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_14X, 0,
0, out, sizeof(out)/sizeof(WCHAR), 11);
- ok(!lstrcmpW(s_14X, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(s_14X, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==4,"failed: r=%d\n", r);
/* a hex number, upper case, left justified */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_1_4X, 0,
0, out, sizeof(out)/sizeof(WCHAR), 11);
- ok(!lstrcmpW(s_1_4X, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(s_1_4X, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==4,"failed: r=%d\n", r);
/* a long hex number, upper case */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_14X, 0,
0, out, sizeof(out)/sizeof(WCHAR), 0x1ab);
- ok(!lstrcmpW(s_1AB, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(s_1AB, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==4,"failed: r=%d\n", r);
/* two percent... */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_2pct, 0,
0, out, sizeof(out)/sizeof(WCHAR));
- ok(!lstrcmpW(s_2pct, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(s_2pct, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==4,"failed: r=%d\n", r);
/* periods are special cases */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_2dot1d, 0,
0, out, sizeof(out)/sizeof(WCHAR), 0x1ab);
- ok(!lstrcmpW(s_2dot147, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(s_2dot147, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==8,"failed: r=%d\n", r);
/* %0 ends the line */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_t0t, 0,
0, out, sizeof(out)/sizeof(WCHAR));
- ok(!lstrcmpW(test, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(test, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==4,"failed: r=%d\n", r);
/* %! prints an exclamation */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_yah, 0,
0, out, sizeof(out)/sizeof(WCHAR));
- ok(!lstrcmpW(s_yah, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(s_yah, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==4,"failed: r=%d\n", r);
/* %space */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_space, 0,
0, out, sizeof(out)/sizeof(WCHAR));
- ok(!lstrcmpW(s_space, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(s_space, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==4,"failed: r=%d\n", r);
/* line feed */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_hi_lf, 0,
0, out, sizeof(out)/sizeof(WCHAR));
- ok(!lstrcmpW(s_hi_crlf, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(s_hi_crlf, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==4,"failed: r=%d\n", r);
/* carriage return line feed */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_hi_crlf, 0,
0, out, sizeof(out)/sizeof(WCHAR));
- ok(!lstrcmpW(s_hi_crlf, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(s_hi_crlf, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==4,"failed: r=%d\n", r);
/* carriage return */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_cr, 0,
0, out, sizeof(out)/sizeof(WCHAR));
- ok(!lstrcmpW(s_crlf, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(s_crlf, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==2,"failed: r=%d\n", r);
/* double carriage return line feed */
r = doitW(FORMAT_MESSAGE_FROM_STRING, fmt_crcrlf, 0,
0, out, sizeof(out)/sizeof(WCHAR));
- ok(!lstrcmpW(s_crlfcrlf, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(s_crlfcrlf, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==4,"failed: r=%d\n", r);
/* change of pace... test the low byte of dwflags */
@@ -308,25 +301,25 @@
/* line feed */
r = doitW(FORMAT_MESSAGE_FROM_STRING | FORMAT_MESSAGE_MAX_WIDTH_MASK, fmt_hi_lf, 0,
0, out, sizeof(out)/sizeof(WCHAR));
- ok(!lstrcmpW(s_hi_sp, out) || !lstrcmpW(s_hi_crlf, out), "failed
out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(s_hi_sp, out) || !lstrcmpW(s_hi_crlf, out), "failed out=%s\n",
wine_dbgstr_w(out));
ok(r==3 || r==4,"failed: r=%d\n", r);
/* carriage return line feed */
r = doitW(FORMAT_MESSAGE_FROM_STRING | FORMAT_MESSAGE_MAX_WIDTH_MASK, fmt_hi_crlf,
0,
0, out, sizeof(out)/sizeof(WCHAR));
- ok(!lstrcmpW(s_hi_sp, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(s_hi_sp, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==3,"failed: r=%d\n", r);
/* carriage return */
r = doitW(FORMAT_MESSAGE_FROM_STRING | FORMAT_MESSAGE_MAX_WIDTH_MASK, fmt_cr, 0,
0, out, sizeof(out)/sizeof(WCHAR));
- ok(!lstrcmpW(s_sp, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(s_sp, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==1,"failed: r=%d\n", r);
/* double carriage return line feed */
r = doitW(FORMAT_MESSAGE_FROM_STRING | FORMAT_MESSAGE_MAX_WIDTH_MASK, fmt_crcrlf, 0,
0, out, sizeof(out)/sizeof(WCHAR));
- ok(!lstrcmpW(s_2sp, out), "failed out=[%s]\n", debugstr_w(out));
+ ok(!lstrcmpW(s_2sp, out), "failed out=%s\n", wine_dbgstr_w(out));
ok(r==2,"failed: r=%d\n", r);
}
Modified: trunk/rostests/winetests/kernel32/process.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/kernel32/proces…
==============================================================================
--- trunk/rostests/winetests/kernel32/process.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/kernel32/process.c [iso-8859-1] Sat Aug 22 18:42:11 2009
@@ -55,23 +55,6 @@
ok(lstrcmpiW((expected), value) == 0, "Expected " #actual " to be
L\"%s\" (" #expected ") is L\"%s\"\n", \
wine_dbgstr_w(expected), wine_dbgstr_w(value)); \
} while (0)
-
-/* A simpler version of wine_dbgstr_w. Note that the returned buffer will be
- * invalid after 16 calls to this funciton. */
-static const char *wine_dbgstr_w(LPCWSTR wstr)
-{
- static char *buffers[16];
- static int curr_buffer = 0;
-
- int size;
-
- curr_buffer = (curr_buffer + 1) % 16;
- HeapFree(GetProcessHeap(), 0, buffers[curr_buffer]);
- size = WideCharToMultiByte(CP_ACP, 0, wstr, -1, NULL, 0, NULL, NULL);
- buffers[curr_buffer] = HeapAlloc(GetProcessHeap(), 0, size);
- size = WideCharToMultiByte(CP_ACP, 0, wstr, -1, buffers[curr_buffer], size, NULL,
NULL);
- return buffers[curr_buffer];
-}
static HINSTANCE hkernel32;
static LPVOID (WINAPI *pVirtualAllocEx)(HANDLE, LPVOID, SIZE_T, DWORD, DWORD);
@@ -1243,6 +1226,7 @@
static void test_DebuggingFlag(void)
{
char buffer[MAX_PATH];
+ void *processbase = NULL;
PROCESS_INFORMATION info;
STARTUPINFOA startup, us;
DEBUG_EVENT de;
@@ -1263,7 +1247,15 @@
{
ok(WaitForDebugEvent(&de, INFINITE), "reading debug event\n");
ContinueDebugEvent(de.dwProcessId, de.dwThreadId, DBG_CONTINUE);
+ if (!dbg)
+ {
+ ok(de.dwDebugEventCode == CREATE_PROCESS_DEBUG_EVENT,
+ "first event: %d\n", de.dwDebugEventCode);
+ processbase = de.u.CreateProcessInfo.lpBaseOfImage;
+ }
if (de.dwDebugEventCode != EXCEPTION_DEBUG_EVENT) dbg++;
+ ok(de.dwDebugEventCode != LOAD_DLL_DEBUG_EVENT ||
+ de.u.LoadDll.lpBaseOfDll != processbase, "got LOAD_DLL for main
module\n");
} while (de.dwDebugEventCode != EXIT_PROCESS_DEBUG_EVENT);
ok(dbg, "I have seen a debug event\n");
Modified: trunk/rostests/winetests/kernel32/profile.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/kernel32/profil…
==============================================================================
--- trunk/rostests/winetests/kernel32/profile.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/kernel32/profile.c [iso-8859-1] Sat Aug 22 18:42:11 2009
@@ -92,14 +92,23 @@
static void test_profile_string(void)
{
+ static WCHAR emptyW[] = { 0 };
+ static WCHAR keyW[] = { 'k','e','y',0 };
+ static WCHAR sW[] = { 's',0 };
+ static WCHAR TESTFILE2W[] =
{'.','\\','t','e','s','t','w','i','n','e','2','.','i','n','i',0};
+ static WCHAR valsectionW[] =
{'v','a','l','_','e','_','s','e','c','t','i','o','n',0
};
+ static WCHAR valnokeyW[] =
{'v','a','l','_','n','o','_','k','e','y',0};
HANDLE h;
int ret;
DWORD count;
char buf[100];
+ WCHAR bufW[100];
char *p;
/* test that lines without an '=' will not be enumerated */
/* in the case below, name2 is a key while name3 is not. */
char content[]="[s]\r\nname1=val1\r\nname2=\r\nname3\r\nname4=val4\r\n";
+ char content2[]="\r\nkey=val_no_section\r\n[]\r\nkey=val_e_section\r\n"
+ "[s]\r\n=val_no_key\r\n[t]\r\n";
DeleteFileA( TESTFILE2);
h = CreateFileA( TESTFILE2, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL, NULL);
@@ -125,6 +134,27 @@
p[-1] = ',';
ok( ret == 24 && !strcmp( buf, "name1,name2,name4,name5"),
"wrong keys returned(%d): %s\n",
ret, buf);
+
+ h = CreateFileA( TESTFILE2, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,
+ FILE_ATTRIBUTE_NORMAL, NULL);
+ ok( h != INVALID_HANDLE_VALUE, " cannot create %s\n", TESTFILE2);
+ if( h == INVALID_HANDLE_VALUE) return;
+ WriteFile( h, content2, sizeof(content2), &count, NULL);
+ CloseHandle( h);
+
+ /* works only in unicode, ascii crashes */
+ ret=GetPrivateProfileStringW(emptyW, keyW, emptyW, bufW,
+ sizeof(bufW)/sizeof(bufW[0]), TESTFILE2W);
+ todo_wine
+ ok(!lstrcmpW(valsectionW,bufW), "expected %s, got %s\n",
+ wine_dbgstr_w(valsectionW), wine_dbgstr_w(bufW) );
+
+ /* works only in unicode, ascii crashes */
+ ret=GetPrivateProfileStringW(sW, emptyW, emptyW, bufW,
+ sizeof(bufW)/sizeof(bufW[0]), TESTFILE2W);
+ todo_wine
+ ok(!lstrcmpW(valnokeyW,bufW), "expected %s, got %s\n",
+ wine_dbgstr_w(valnokeyW), wine_dbgstr_w(bufW) );
DeleteFileA( TESTFILE2);
}
Modified: trunk/rostests/winetests/kernel32/thread.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/kernel32/thread…
==============================================================================
--- trunk/rostests/winetests/kernel32/thread.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/kernel32/thread.c [iso-8859-1] Sat Aug 22 18:42:11 2009
@@ -812,22 +812,24 @@
"SetThreadAffinityMask passed for an illegal processor\n");
/* NOTE: This only works on WinNT/2000/XP) */
if (pSetThreadIdealProcessor) {
- todo_wine {
- SetLastError(0);
- error=pSetThreadIdealProcessor(curthread,0);
- if (GetLastError()!=ERROR_CALL_NOT_IMPLEMENTED) {
- ok(error!=-1, "SetThreadIdealProcessor failed\n");
- }
+ SetLastError(0xdeadbeef);
+ error=pSetThreadIdealProcessor(curthread,0);
+ if (GetLastError()==ERROR_CALL_NOT_IMPLEMENTED)
+ {
+ win_skip("SetThreadIdealProcessor is not implemented\n");
+ return;
}
- if (GetLastError()!=ERROR_CALL_NOT_IMPLEMENTED) {
- error=pSetThreadIdealProcessor(curthread,MAXIMUM_PROCESSORS+1);
- ok(error==-1,
- "SetThreadIdealProcessor succeeded with an illegal processor #\n");
- todo_wine {
- error=pSetThreadIdealProcessor(curthread,MAXIMUM_PROCESSORS);
- ok(error==0, "SetThreadIdealProcessor returned an incorrect
value\n");
- }
- }
+ ok(error!=-1, "SetThreadIdealProcessor failed\n");
+
+ SetLastError(0xdeadbeef);
+ error=pSetThreadIdealProcessor(curthread,MAXIMUM_PROCESSORS+1);
+ ok(error==-1,
+ "SetThreadIdealProcessor succeeded with an illegal processor #\n");
+ ok(GetLastError()==ERROR_INVALID_PARAMETER,
+ "Expected ERROR_INVALID_PARAMETER, got %d\n", GetLastError());
+
+ error=pSetThreadIdealProcessor(curthread,MAXIMUM_PROCESSORS);
+ ok(error==0, "SetThreadIdealProcessor returned an incorrect value\n");
}
}
Modified: trunk/rostests/winetests/kernel32/virtual.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/kernel32/virtua…
==============================================================================
--- trunk/rostests/winetests/kernel32/virtual.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/kernel32/virtual.c [iso-8859-1] Sat Aug 22 18:42:11 2009
@@ -284,6 +284,40 @@
ok(old_prot == PAGE_READONLY,
"wrong old protection: got %04x instead of PAGE_READONLY\n",
old_prot);
+ ok(VirtualQuery(addr1, &info, sizeof(info)) == sizeof(info),
+ "VirtualQuery failed\n");
+ ok(info.RegionSize == 0x1000, "%lx != 0x1000\n", info.RegionSize);
+ ok(info.State == MEM_COMMIT, "%x != MEM_COMMIT\n", info.State);
+ ok(info.Protect == PAGE_READWRITE, "%x != PAGE_READWRITE\n",
info.Protect);
+ memset( addr1, 0x55, 20 );
+ ok( *(DWORD *)addr1 == 0x55555555, "wrong data %x\n", *(DWORD *)addr1 );
+
+ addr2 = VirtualAlloc( addr1, 0x1000, MEM_RESET, PAGE_NOACCESS );
+ ok( addr2 == addr1 || broken( !addr2 && GetLastError() ==
ERROR_INVALID_PARAMETER), /* win9x */
+ "VirtualAlloc failed err %u\n", GetLastError() );
+ ok( *(DWORD *)addr1 == 0x55555555 || *(DWORD *)addr1 == 0, "wrong data
%x\n", *(DWORD *)addr1 );
+ if (addr2)
+ {
+ ok(VirtualQuery(addr1, &info, sizeof(info)) == sizeof(info),
+ "VirtualQuery failed\n");
+ ok(info.RegionSize == 0x1000, "%lx != 0x1000\n", info.RegionSize);
+ ok(info.State == MEM_COMMIT, "%x != MEM_COMMIT\n", info.State);
+ ok(info.Protect == PAGE_READWRITE, "%x != PAGE_READWRITE\n",
info.Protect);
+
+ addr2 = VirtualAlloc( (char *)addr1 + 0x1000, 0x1000, MEM_RESET, PAGE_NOACCESS
);
+ ok( (char *)addr2 == (char *)addr1 + 0x1000, "VirtualAlloc failed\n"
);
+
+ ok(VirtualQuery(addr2, &info, sizeof(info)) == sizeof(info),
+ "VirtualQuery failed\n");
+ ok(info.RegionSize == 0xf000, "%lx != 0xf000\n", info.RegionSize);
+ ok(info.State == MEM_RESERVE, "%x != MEM_RESERVE\n", info.State);
+ ok(info.Protect == 0, "%x != 0\n", info.Protect);
+
+ addr2 = VirtualAlloc( (char *)addr1 + 0xf000, 0x2000, MEM_RESET, PAGE_NOACCESS
);
+ ok( !addr2, "VirtualAlloc failed\n" );
+ ok( GetLastError() == ERROR_INVALID_ADDRESS, "wrong error %u\n",
GetLastError() );
+ }
+
/* invalid protection values */
SetLastError(0xdeadbeef);
addr2 = VirtualAlloc(NULL, 0x1000, MEM_RESERVE, 0);
@@ -329,7 +363,7 @@
static const char testfile[] = "testfile.xxx";
const char *name;
HANDLE file, mapping, map2;
- void *ptr, *ptr2;
+ void *ptr, *ptr2, *addr;
MEMORY_BASIC_INFORMATION info;
BOOL ret;
@@ -699,6 +733,10 @@
"Protect should have been 0 instead of 0x%x\n", info.Protect);
ok(info.Type == MEM_MAPPED, "Type should have been MEM_MAPPED instead of
0x%x\n", info.Type);
}
+
+ addr = VirtualAlloc( ptr, MAPPING_SIZE, MEM_RESET, PAGE_READONLY );
+ ok( addr == ptr || broken(!addr && GetLastError() ==
ERROR_INVALID_PARAMETER), /* win9x */
+ "VirtualAlloc failed with error %u\n", GetLastError() );
ret = VirtualFree( ptr, 0x10000, MEM_DECOMMIT );
ok( !ret || broken(ret) /* win9x */, "VirtualFree succeeded\n" );
Modified: trunk/rostests/winetests/kernel32/volume.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/kernel32/volume…
==============================================================================
--- trunk/rostests/winetests/kernel32/volume.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/kernel32/volume.c [iso-8859-1] Sat Aug 22 18:42:11 2009
@@ -160,7 +160,7 @@
"GetVolumeNameForVolumeMountPointA failed on %s, last=%d\n",
temp_path, GetLastError());
- /* Try on a non-existent dos drive */
+ /* Try on a nonexistent dos drive */
path[2] = 0;
for (;path[0] <= 'z'; path[0]++) {
ret = QueryDosDeviceA( path, volume, len);
@@ -174,7 +174,7 @@
"GetVolumeNameForVolumeMountPointA failed on %s, last=%d\n",
path, GetLastError());
- /* Try without trailing \ and on a non-existent dos drive */
+ /* Try without trailing \ and on a nonexistent dos drive */
path[2] = 0;
ret = pGetVolumeNameForVolumeMountPointA(path, volume, len);
ok(ret == FALSE && GetLastError() == ERROR_INVALID_NAME,
@@ -299,6 +299,7 @@
DWORD vol_name_size=MAX_PATH+1, vol_serial_num=-1, max_comp_len=0, fs_flags=0,
fs_name_len=MAX_PATH+1;
char vol_name_buf[MAX_PATH+1], fs_name_buf[MAX_PATH+1];
char windowsdir[MAX_PATH+10];
+ char currentdir[MAX_PATH+1];
if (!pGetVolumeInformationA) {
win_skip("GetVolumeInformationA not found\n");
@@ -321,12 +322,40 @@
ret = pGetVolumeNameForVolumeMountPointA(Root_Dir1, volume, MAX_PATH);
ok(ret == TRUE, "GetVolumeNameForVolumeMountPointA failed\n");
+ result = GetCurrentDirectory(MAX_PATH, currentdir);
+ ok(result, "GetCurrentDirectory: error %d\n", GetLastError());
+
/* **** now start the tests **** */
/* check for error on no trailing \ */
+ if (result > 3)
+ {
+ ret = pGetVolumeInformationA(Root_Dir0, vol_name_buf, vol_name_size, NULL,
+ NULL, NULL, fs_name_buf, fs_name_len);
+ ok(!ret && GetLastError() == ERROR_INVALID_NAME,
+ "GetVolumeInformationA w/o '\\' did not fail, last error
%u\n", GetLastError());
+ }
+ else
+ skip("Running on a root directory\n");
+
+ /* check for error on no trailing \ when current dir is root dir */
+ ret = SetCurrentDirectory(Root_Dir1);
+ ok(ret, "SetCurrentDirectory: error %d\n", GetLastError());
+ ret = pGetVolumeInformationA(Root_Dir0, vol_name_buf, vol_name_size, NULL,
+ NULL, NULL, fs_name_buf, fs_name_len);
+ todo_wine
+ ok(ret, "GetVolumeInformationA failed, last error %u\n", GetLastError());
+
+ /* check for error on no trailing \ when current dir is windows dir */
+ ret = SetCurrentDirectory(windowsdir);
+ ok(ret, "SetCurrentDirectory: error %d\n", GetLastError());
ret = pGetVolumeInformationA(Root_Dir0, vol_name_buf, vol_name_size, NULL,
NULL, NULL, fs_name_buf, fs_name_len);
ok(!ret && GetLastError() == ERROR_INVALID_NAME,
- "GetVolumeInformationA w/o '\\' did not fail, last error %u\n",
GetLastError());
+ "GetVolumeInformationA did not fail, last error %u\n",
GetLastError());
+
+ /* reset current directory */
+ ret = SetCurrentDirectory(currentdir);
+ ok(ret, "SetCurrentDirectory: error %d\n", GetLastError());
/* try null root directory to return "root of the current directory" */
ret = pGetVolumeInformationA(NULL, vol_name_buf, vol_name_size, NULL,