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/codepag... ============================================================================== --- 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.c... ============================================================================== --- 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/process... ============================================================================== --- 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/profile... ============================================================================== --- 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/virtual... ============================================================================== --- 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,