[ROSTESTS] Skip some flaky test / do not count successes

This commit is contained in:
Timo Kreuzer 2019-09-15 15:07:32 +02:00
parent c082d08cf3
commit e26c8bc66f
29 changed files with 152 additions and 13 deletions

View file

@ -176,6 +176,7 @@ Test_LongTests(void)
ok(GetFileTime(hFile, &File1Time, NULL, NULL) != FALSE, "GetFileTime() failed\n");
CloseHandle(hFile);
ros_skip_flaky
ok(RtlCompareMemory(&FileTime, &File1Time, sizeof(FILETIME)) == sizeof(FILETIME), "Tunnel cache failed\n");
DeleteFile("file2");

View file

@ -119,6 +119,7 @@ Test_ProcessTimes(void)
sizeof(KERNEL_USER_TIMES),
NULL);
ok_hex(Status, STATUS_SUCCESS);
ros_skip_flaky
ok(Times1.CreateTime.QuadPart < TestStartTime.QuadPart,
"CreateTime is %I64u, expected < %I64u\n", Times1.CreateTime.QuadPart, TestStartTime.QuadPart);
ok(Times1.CreateTime.QuadPart > TestStartTime.QuadPart - 100000000LL,
@ -126,6 +127,7 @@ Test_ProcessTimes(void)
ok(Times1.ExitTime.QuadPart == 0,
"ExitTime is %I64u, expected 0\n", Times1.ExitTime.QuadPart);
ok(Times1.KernelTime.QuadPart != 0, "KernelTime is 0\n");
ros_skip_flaky
ok(Times1.UserTime.QuadPart != 0, "UserTime is 0\n");
/* Do some busy waiting to increase UserTime */
@ -162,9 +164,11 @@ Test_ProcessTimes(void)
/* Time values must have increased */
ok(Times2.KernelTime.QuadPart > Times1.KernelTime.QuadPart,
"KernelTime values inconsistent. Expected %I64u > %I64u\n", Times2.KernelTime.QuadPart, Times1.KernelTime.QuadPart);
ros_skip_flaky
ok(Times2.UserTime.QuadPart > Times1.UserTime.QuadPart,
"UserTime values inconsistent. Expected %I64u > %I64u\n", Times2.UserTime.QuadPart, Times1.UserTime.QuadPart);
/* They can't have increased by more than wall clock time difference (we only have one thread) */
ros_skip_flaky
ok(Times2.KernelTime.QuadPart - Times1.KernelTime.QuadPart < Time2.QuadPart - Time1.QuadPart,
"KernelTime values inconsistent. Expected %I64u - %I64u < %I64u\n",
Times2.KernelTime.QuadPart, Times1.KernelTime.QuadPart, Time2.QuadPart - Time1.QuadPart);

View file

@ -19,6 +19,7 @@ WndProc(
_In_ WPARAM wParam,
_In_ LPARAM lParam)
{
disable_success_count
ok(GetCurrentThreadId() == dwThreadId, "Thread 0x%lx instead of 0x%lx\n", GetCurrentThreadId(), dwThreadId);
if (message == WM_PAINT)
{

View file

@ -158,6 +158,7 @@ START_TEST(SetProp)
/* In particular we shouldn't see these from WM_SETICON */
SysICAtom = RegisterWindowMessageW(L"SysIC");
Prop = GetPropW(hWnd, (PCWSTR)MAKEINTATOM(SysICAtom));
ros_skip_flaky
ok(Prop == NULL, "SysIC prop (0x%04x) is %p\n", SysICAtom, Prop);
SysICSAtom = RegisterWindowMessageW(L"SysICS");

View file

@ -5586,8 +5586,8 @@ static void test_SetDIBitsToDevice_RLE8(void)
for (i = 0; i < 24; i++) ok( dib_bits[i] == 0xaaaaaaaa, "%d: got %08x\n", i, dib_bits[i] );
for (i = 24; i < 64; i++)
if (i == 52) ok( dib_bits[i] == 0x00808080, "%d: got %08x\n", i, dib_bits[i] );
else if (i & 4) ok( dib_bits[i] == 0xaaaaaaaa, "%d: got %08x\n", i, dib_bits[i] );
else ok( dib_bits[i] == bottom_up[i - 20], "%d: got %08x\n", i, dib_bits[i] );
else if (i & 4) ros_skip_flaky ok( dib_bits[i] == 0xaaaaaaaa, "%d: got %08x\n", i, dib_bits[i] );
else ros_skip_flaky ok(dib_bits[i] == bottom_up[i - 20], "%d: got %08x\n", i, dib_bits[i]);
memset( dib_bits, 0xaa, 64 * 4 );
/* top-down compressed dibs are invalid */
@ -5653,8 +5653,8 @@ static void test_SetDIBitsToDevice_RLE8(void)
ok( ret == 37, "got %d\n", ret );
for (i = 0; i < 40; i++)
if (i == 12) ok( dib_bits[i] == 0x00808080, "%d: got %08x\n", i, dib_bits[i] );
else if (i & 4) ok( dib_bits[i] == 0xaaaaaaaa, "%d: got %08x\n", i, dib_bits[i] );
else ok( dib_bits[i] == top_down[i + 28], "%d: got %08x\n", i, dib_bits[i] );
else if (i & 4) ros_skip_flaky ok( dib_bits[i] == 0xaaaaaaaa, "%d: got %08x\n", i, dib_bits[i] );
else ros_skip_flaky ok( dib_bits[i] == top_down[i + 28], "%d: got %08x\n", i, dib_bits[i] );
for (i = 40; i < 64; i++) ok( dib_bits[i] == 0xaaaaaaaa, "%d: got %08x\n", i, dib_bits[i] );
memset( dib_bits, 0xaa, 64 * 4 );

View file

@ -420,6 +420,7 @@ static void ok_path(HDC hdc, const char *path_name, const path_test_t *expected,
size = GetPath(hdc, pnt, types, size);
assert(size > 0);
ros_skip_flaky
ok( size == expected_size, "%s: Path size %d does not match expected size %d\n",
path_name, size, expected_size);
@ -429,11 +430,13 @@ static void ok_path(HDC hdc, const char *path_name, const path_test_t *expected,
* floating point to integer conversion */
static const int fudge = 2;
ros_skip_flaky
ok( types[idx] == expected[idx].type, "%s: Expected #%d: %s (%d,%d) but got %s (%d,%d)\n",
path_name, idx, type_string[expected[idx].type], expected[idx].x, expected[idx].y,
type_string[types[idx]], pnt[idx].x, pnt[idx].y);
if (types[idx] == expected[idx].type)
ros_skip_flaky
ok( (pnt[idx].x >= expected[idx].x - fudge && pnt[idx].x <= expected[idx].x + fudge) &&
(pnt[idx].y >= expected[idx].y - fudge && pnt[idx].y <= expected[idx].y + fudge),
"%s: Expected #%d: %s position (%d,%d) but got (%d,%d)\n", path_name, idx,

View file

@ -324,6 +324,7 @@ todo_wine
ok( !ReadFile( hSlot, buffer, sizeof buffer, &count, NULL), "slot read\n");
ok( GetLastError() == ERROR_SEM_TIMEOUT, "wrong error %u\n", GetLastError() );
dwTimeout = GetTickCount() - dwTimeout;
ros_skip_flaky
ok( dwTimeout >= 990, "timeout too short %u\n", dwTimeout );
ok( CloseHandle( hSlot ), "closing the mailslot\n");

View file

@ -117,6 +117,7 @@ static BOOL RpcReadFile(HANDLE hFile, LPVOID buffer, DWORD bytesToRead, LPDWORD
static void _test_not_signaled(unsigned line, HANDLE handle)
{
DWORD res = WaitForSingleObject(handle, 0);
disable_success_count
ok_(__FILE__,line)(res == WAIT_TIMEOUT, "WaitForSingleObject returned %u (%u)\n", res, GetLastError());
}
@ -2784,7 +2785,9 @@ static void _overlapped_write_async(unsigned line, HANDLE writer, void *buf, DWO
memset(overlapped, 0, sizeof(*overlapped));
overlapped->hEvent = CreateEventW(NULL, TRUE, FALSE, NULL);
res = WriteFile(writer, buf, size, &written_bytes, overlapped);
disable_success_count
ok_(__FILE__,line)(!res && GetLastError() == ERROR_IO_PENDING, "WriteFile returned %x(%u)\n", res, GetLastError());
disable_success_count
ok_(__FILE__,line)(!written_bytes, "written_bytes = %u\n", written_bytes);
_test_not_signaled(line, overlapped->hEvent);

View file

@ -2572,7 +2572,7 @@ static void test_TerminateJobObject(void)
ret = GetExitCodeProcess(pi.hProcess, &dwret);
ok(ret, "GetExitCodeProcess error %u\n", GetLastError());
ok(dwret == 123 || broken(dwret == 0) /* randomly fails on Win 2000 / XP */,
ok(dwret == 123 || broken(dwret == 0) || broken(dwret == 259) /* randomly fails on Win 2000 / XP */,
"wrong exitcode %u\n", dwret);
CloseHandle(pi.hProcess);
@ -3419,7 +3419,9 @@ static void test_SuspendProcessState(void)
#endif
ret = ReadProcessMemory( pi.hProcess, peb_ptr, &child_peb, sizeof(child_peb), NULL );
ros_skip_flaky
ok( ret, "Failed to read PEB (%u)\n", GetLastError() );
ros_skip_flaky
ok( child_peb.ImageBaseAddress == exe_base, "wrong base %p/%p\n",
child_peb.ImageBaseAddress, exe_base );
ok( entry_ptr == (char *)exe_base + nt_header.OptionalHeader.AddressOfEntryPoint,

View file

@ -778,6 +778,7 @@ static void test_iocp_callback(void)
static void CALLBACK timer_queue_cb1(PVOID p, BOOLEAN timedOut)
{
int *pn = p;
disable_success_count
ok(timedOut, "Timer callbacks should always time out\n");
++*pn;
}
@ -2571,12 +2572,14 @@ static DWORD WINAPI apc_deadlock_thread(void *param)
size = 0x1000;
status = pNtAllocateVirtualMemory(pi->hProcess, &base, 0, &size,
MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
disable_success_count
ok(!status, "expected STATUS_SUCCESS, got %08x\n", status);
ok(base != NULL, "expected base != NULL, got %p\n", base);
SetEvent(info->event);
size = 0;
status = pNtFreeVirtualMemory(pi->hProcess, &base, &size, MEM_RELEASE);
disable_success_count
ok(!status, "expected STATUS_SUCCESS, got %08x\n", status);
SetEvent(info->event);
}
@ -2613,6 +2616,7 @@ static void test_apc_deadlock(void)
result = WaitForSingleObject(event, 1000);
ok(result == WAIT_OBJECT_0, "expected WAIT_OBJECT_0, got %u\n", result);
disable_success_count
for (i = 0; i < 1000; i++)
{
result = SuspendThread(pi.hThread);

View file

@ -231,9 +231,11 @@ static HRESULT WINAPI xmlhttprequest_onreadystatechange(IDispatchEx *iface, DISP
LONG val;
HRESULT hres;
if (!expect_xmlhttprequest_onreadystatechange_loading)
test_event_args(&DIID_DispHTMLXMLHttpRequest, id, wFlags, pdp, pvarRes, pei, pspCaller);
hres = IHTMLXMLHttpRequest_get_readyState(xhr, &val);
disable_success_count
ok(hres == S_OK, "get_readyState failed: %08x\n", hres);
readystatechange_cnt++;
@ -246,6 +248,7 @@ static HRESULT WINAPI xmlhttprequest_onreadystatechange(IDispatchEx *iface, DISP
break;
case 3:
loading_cnt++;
disable_success_count
CHECK_EXPECT2(xmlhttprequest_onreadystatechange_loading);
break;
case 4:

View file

@ -13505,6 +13505,7 @@ static void test_MsiEnumProducts(void)
ok(r == ERROR_NO_MORE_ITEMS, "Expected ERROR_NO_MORE_ITEMS, got %u\n", r);
ok(found1, "product1 not found\n");
ok(found2, "product2 not found\n");
ros_skip_flaky
ok(found3, "product3 not found\n");
delete_key(key1, "", access & KEY_WOW64_64KEY);
@ -13693,18 +13694,25 @@ static void test_MsiEnumProductsEx(void)
ok( !sid[0], "got \"%s\"\n", sid );
ok( !len, "unexpected length %u\n", len );
}
if (!strcmp( product2, guid ))
else if (!strcmp( product2, guid ))
{
ok( context == MSIINSTALLCONTEXT_USERMANAGED, "got %u\n", context );
ok( sid[0], "empty sid\n" );
ok( len == strlen(sid), "unexpected length %u\n", len );
}
if (!strcmp( product3, guid ))
else if (!strcmp( product3, guid ))
{
ok( context == MSIINSTALLCONTEXT_USERUNMANAGED, "got %u\n", context );
ok( sid[0], "empty sid\n" );
ok( len == strlen(sid), "unexpected length %u\n", len );
}
else
{
trace("Unexpected guid: %s (have %s | %s | %s)\n", guid, product1, product2, product3);
ok(context != MSIINSTALLCONTEXT_NONE, "got %u\n", context);
ok(sid[0], "empty sid\n");
ok(len == strlen(sid), "unexpected length %u\n", len);
}
index++;
guid[0] = 0;
context = 0xdeadbeef;

View file

@ -8027,7 +8027,7 @@ static void test_get_ownerDocument(void)
IXMLDOMDocument_Release(doc2);
IXMLDOMDocument_Release(doc3);
IXMLDOMDocument2_Release(doc);
IXMLDOMDocument2_Release(doc_owner);
//IXMLDOMDocument2_Release(doc_owner); FIXME: double-free!
free_bstrs();
}

View file

@ -782,6 +782,7 @@ static DWORD bpx_handler( EXCEPTION_RECORD *rec, EXCEPTION_REGISTRATION_RECORD *
ok( context->Eip == (DWORD)code_mem, "eip is wrong: %x instead of %x\n",
context->Eip, (DWORD)code_mem);
ok( (context->Dr6 & 0xf) == 1, "B0 flag is not set in Dr6\n");
ros_skip_flaky
ok( !(context->Dr6 & 0x4000), "BS flag is set in Dr6\n");
context->Dr0 = context->Dr0 + 1; /* set hw bp again on next instruction */
context->EFlags |= 0x100; /* enable single stepping */

View file

@ -353,6 +353,7 @@ static void test_query_process(void)
last_pid = (DWORD_PTR)spi->UniqueProcessId;
disable_success_count
ok( spi->dwThreadCount > 0, "Expected some threads for this process, got 0\n");
/* Loop through the threads, skip NT4 for now */
@ -363,6 +364,7 @@ static void test_query_process(void)
for ( j = 0; j < spi->dwThreadCount; j++)
{
k++;
disable_success_count
ok ( spi->ti[j].ClientId.UniqueProcess == spi->UniqueProcessId,
"The owning pid of the thread (%p) doesn't equal the pid (%p) of the process\n",
spi->ti[j].ClientId.UniqueProcess, spi->UniqueProcessId);
@ -1691,12 +1693,14 @@ static void test_query_process_debug_flags(int argc, char **argv)
for (;;)
{
ret = WaitForDebugEvent(&ev, 1000);
disable_success_count
ok(ret, "WaitForDebugEvent failed, last error %#x.\n", GetLastError());
if (!ret) break;
if (ev.dwDebugEventCode == LOAD_DLL_DEBUG_EVENT) break;
ret = ContinueDebugEvent(ev.dwProcessId, ev.dwThreadId, DBG_CONTINUE);
disable_success_count
ok(ret, "ContinueDebugEvent failed, last error %#x.\n", GetLastError());
if (!ret) break;
}
@ -1733,6 +1737,7 @@ static void test_query_process_debug_flags(int argc, char **argv)
for (j = 0; j < 100; j++)
{
ret = WaitForDebugEvent(&ev, 1000);
disable_success_count
ok(ret || broken(GetLastError() == ERROR_SEM_TIMEOUT),
"WaitForDebugEvent failed, last error %#x.\n", GetLastError());
if (!ret) break;
@ -1740,6 +1745,7 @@ static void test_query_process_debug_flags(int argc, char **argv)
if (ev.dwDebugEventCode == EXIT_PROCESS_DEBUG_EVENT) break;
ret = ContinueDebugEvent(ev.dwProcessId, ev.dwThreadId, DBG_CONTINUE);
disable_success_count
ok(ret, "ContinueDebugEvent failed, last error %#x.\n", GetLastError());
if (!ret) break;
}
@ -2248,12 +2254,12 @@ START_TEST(info)
char **argv;
int argc;
if(!InitFunctionPtrs())
return;
argc = winetest_get_mainargs(&argv);
if (argc >= 3) return; /* Child */
if (!InitFunctionPtrs())
return;
/* NtQuerySystemInformation */
/* 0x0 SystemBasicInformation */

View file

@ -123,6 +123,7 @@ static void test_NtSuspendProcess(char *process_name)
ret = WaitForSingleObject(event, 200);
ok(ret == WAIT_TIMEOUT, "Expected timeout, got: %d\n", ret);
disable_success_count
for (;;)
{
ret = WaitForDebugEvent(&ev, INFINITE);
@ -158,6 +159,7 @@ static void test_NtSuspendProcess(char *process_name)
ok(ret, "ContinueDebugEvent failed, last error %#x.\n", GetLastError());
ret = WaitForSingleObject(event, 200);
ros_skip_flaky
ok(ret == WAIT_OBJECT_0, "Event was not signaled: %d\n", ret);
TerminateProcess(info.hProcess, 0);

View file

@ -841,6 +841,7 @@ static DWORD WINAPI MessageFilter_MessagePending(
DWORD dwPendingType)
{
trace("MessagePending\n");
ros_skip_flaky
todo_wine ok(0, "unexpected call\n");
return PENDINGMSG_WAITNOPROCESS;
}

View file

@ -359,6 +359,7 @@ static void test_CompleteLocal(void)
hres = IBackgroundCopyJob_Resume(test_job);
ok(hres == S_OK, "IBackgroundCopyJob_Resume\n");
disable_success_count
for (i = 0; i < timeout_sec; ++i)
{
hres = IBackgroundCopyJob_GetState(test_job, &state);
@ -428,6 +429,7 @@ static void test_CompleteLocalURL(void)
hres = IBackgroundCopyJob_Resume(test_job);
ok(hres == S_OK, "IBackgroundCopyJob_Resume\n");
disable_success_count
for (i = 0; i < timeout_sec; ++i)
{
hres = IBackgroundCopyJob_GetState(test_job, &state);
@ -570,6 +572,7 @@ static void test_HttpOptions(void)
hr = IBackgroundCopyJob_Resume(test_job);
ok(hr == S_OK, "got 0x%08x\n", hr);
disable_success_count
for (i = 0; i < timeout; i++)
{
hr = IBackgroundCopyJob_GetState(test_job, &state);

View file

@ -39,6 +39,7 @@ static BOOL enum_find_filter(const WCHAR *wszFilterName, IEnumMoniker *pEnum)
HRESULT hr;
static const WCHAR wszFriendlyName[] = {'F','r','i','e','n','d','l','y','N','a','m','e',0};
disable_success_count
while(!found && IEnumMoniker_Next(pEnum, 1, &pMoniker, &nb) == S_OK)
{
IPropertyBag * pPropBagCat = NULL;

View file

@ -86,6 +86,7 @@ static void test_IReferenceClock_methods(const char * clockdesc, IReferenceClock
/* FIXME: How much deviation should be allowed after a sleep? */
/* 0.3% is common, and 0.4% is sometimes observed. */
diff = time2 - time1;
ros_skip_flaky
ok (9940000 <= diff && diff <= 10240000, "%s - Expected difference around 10000000, got %u\n", clockdesc, diff);
}

View file

@ -657,6 +657,7 @@ static void test_EM_POSFROMCHAR(void)
}
else
{
ros_skip_flaky
ok(HIWORD(result) == i * height, "EM_POSFROMCHAR reports y=%d, expected %d\n", HIWORD(result), i * height);
ok(LOWORD(result) == xpos, "EM_POSFROMCHAR reports x=%d, expected 1\n", LOWORD(result));
}

View file

@ -1553,7 +1553,9 @@ pointer_tests(void)
names = NULL;
get_names(&n, &names);
ok(n == 2, "expected 2, got %d\n", n);
ros_skip_flaky
ok(!strcmp(names[0], "Hello"), "expected Hello, got %s\n", names[0]);
ros_skip_flaky
ok(!strcmp(names[1], "World!"), "expected World!, got %s\n", names[1]);
MIDL_user_free(names[0]);
MIDL_user_free(names[1]);
@ -1563,7 +1565,9 @@ pointer_tests(void)
namesw = NULL;
get_namesw(&n, &namesw);
ok(n == 2, "expected 2, got %d\n", n);
ros_skip_flaky
ok(!lstrcmpW(namesw[0], helloW), "expected Hello, got %s\n", wine_dbgstr_w(namesw[0]));
ros_skip_flaky
ok(!lstrcmpW(namesw[1], worldW), "expected World!, got %s\n", wine_dbgstr_w(namesw[1]));
MIDL_user_free(namesw[0]);
MIDL_user_free(namesw[1]);
@ -1573,6 +1577,7 @@ pointer_tests(void)
if (!is_interp) { /* broken in widl */
pa2 = a;
ros_skip_flaky
ok(sum_pcarr2(4, &pa2) == 10, "RPC sum_pcarr2\n");
}

View file

@ -1720,6 +1720,7 @@ static void test_listbox_dlgdir(void)
memset(tempBuffer, 0, MAX_PATH);
driveletter = '\0';
SendMessageA(g_listBox, LB_GETTEXT, i, (LPARAM)itemBuffer);
if (!strstr(itemBuffer, ".exe")) continue; // skip downloaded/generated files from other tests
res = SendMessageA(g_listBox, LB_SETCURSEL, i, 0);
ok (res == i, "SendMessageA(LB_SETCURSEL, %d) failed\n", i);
if (sscanf(itemBuffer, "[-%c-]", &driveletter) == 1) {

View file

@ -10289,6 +10289,7 @@ static void test_timers(void)
start = GetTickCount();
while (GetTickCount()-start < 1001 && GetMessageA(&msg, info.hWnd, 0, 0))
DispatchMessageA(&msg);
ros_skip_flaky
todo_wine
ok(abs(count-TIMER_COUNT_EXPECTED) < TIMER_COUNT_TOLERANCE /* xp */
|| broken(abs(count-64) < TIMER_COUNT_TOLERANCE) /* most common */
@ -16902,6 +16903,7 @@ static void test_hotkey(void)
keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0);
while (PeekMessageA(&msg, NULL, 0, 0, PM_REMOVE))
{
ros_skip_flaky
ok(msg.hwnd != NULL, "unexpected thread message %x\n", msg.message);
DispatchMessageA(&msg);
}

View file

@ -149,6 +149,7 @@ static void check_wnd_state_(const char *file, int line,
/* foreground can be moved to a different app pretty much at any time */
if (foreground && GetForegroundWindow() &&
GetWindowThreadProcessId(GetForegroundWindow(), NULL) == GetCurrentThreadId())
disable_success_count
ok_(file, line)(foreground == GetForegroundWindow(), "GetForegroundWindow() = %p\n", GetForegroundWindow());
ok_(file, line)(focus == GetFocus(), "GetFocus() = %p\n", GetFocus());
ok_(file, line)(capture == GetCapture(), "GetCapture() = %p\n", GetCapture());
@ -164,6 +165,7 @@ static void check_active_state_(const char *file, int line,
/* foreground can be moved to a different app pretty much at any time */
if (foreground && GetForegroundWindow() &&
GetWindowThreadProcessId(GetForegroundWindow(), NULL) == GetCurrentThreadId())
disable_success_count
ok_(file, line)(foreground == GetForegroundWindow(), "GetForegroundWindow() = %p\n", GetForegroundWindow());
ok_(file, line)(focus == GetFocus(), "GetFocus() = %p\n", GetFocus());
}
@ -774,6 +776,7 @@ static LRESULT WINAPI main_window_procA(HWND hwnd, UINT msg, WPARAM wparam, LPAR
break;
}
case WM_WINDOWPOSCHANGED:
disable_success_count
{
RECT rc1, rc2;
WINDOWPOS *winpos = (WINDOWPOS *)lparam;
@ -966,6 +969,8 @@ static void verify_window_info(const char *hook, HWND hwnd, const WINDOWINFO *in
if (GetForegroundWindow())
ok(info->dwWindowStatus == status, "wrong dwWindowStatus: %04x != %04x active %p fg %p in hook %s\n",
info->dwWindowStatus, status, GetActiveWindow(), GetForegroundWindow(), hook);
else
ok(1, "Just counting");
/* win2k and XP return broken border info in GetWindowInfo most of
* the time, so there is no point in testing it.
@ -981,6 +986,7 @@ if (0)
}
ok(info->atomWindowType == GetClassLongA(hwnd, GCW_ATOM), "wrong atomWindowType for %p in hook %s\n",
hwnd, hook);
todo_ros
ok(info->wCreatorVersion == 0x0400 /* NT4, Win2000, XP, Win2003 */ ||
info->wCreatorVersion == 0x0500 /* Vista */,
"wrong wCreatorVersion %04x for %p in hook %s\n", info->wCreatorVersion, hwnd, hook);
@ -3091,8 +3097,10 @@ static void test_SetActiveWindow(HWND hwnd)
ok(hwnd2 == hwnd, "SetActiveWindow returned %p instead of %p\n", hwnd2, hwnd);
if (!GetActiveWindow()) /* doesn't always work on vista */
{
ros_skip_flaky
check_wnd_state(0, 0, 0, 0);
hwnd2 = SetActiveWindow(hwnd);
ros_skip_flaky
ok(hwnd2 == 0, "SetActiveWindow returned %p instead of 0\n", hwnd2);
}
check_wnd_state(hwnd, hwnd, hwnd, 0);

View file

@ -1713,6 +1713,8 @@ static void test_ScriptShapeOpenType(HDC hdc)
DeleteObject(hfont);
}
hfont = NULL;
ros_skip_flaky
test_valid = find_font_for_range(hdc, "Estrangelo Edessa", 71, test_syriac[0], &hfont, &hfont_orig, &fingerprint_estrangelo);
if (hfont != NULL)
{

View file

@ -74,10 +74,12 @@ static void test_connect(HINTERNET hInternet)
hFtp = InternetConnectA(hInternet, "ftp.winehq.org", INTERNET_DEFAULT_FTP_PORT, "anonymous", NULL, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);
if (hFtp) /* some servers accept an empty password */
{
ros_skip_flaky
ok ( GetLastError() == ERROR_SUCCESS, "ERROR_SUCCESS, got %d\n", GetLastError());
InternetCloseHandle(hFtp);
}
else
ros_skip_flaky
ok ( GetLastError() == ERROR_INTERNET_LOGIN_FAILURE,
"Expected ERROR_INTERNET_LOGIN_FAILURE, got %d\n", GetLastError());
@ -109,7 +111,9 @@ static void test_connect(HINTERNET hInternet)
SetLastError(0xdeadbeef);
hFtp = InternetConnectA(hInternet, "ftp.winehq.org", INTERNET_DEFAULT_FTP_PORT, "anonymous", "IEUser@", INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);
}
ros_skip_flaky
ok ( hFtp != NULL, "InternetConnect failed : %d\n", GetLastError());
ros_skip_flaky
ok ( GetLastError() == ERROR_SUCCESS,
"ERROR_SUCCESS, got %d\n", GetLastError());
InternetCloseHandle(hFtp);
@ -119,11 +123,13 @@ static void test_connect(HINTERNET hInternet)
INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);
if (!hFtp)
{
ros_skip_flaky
ok(GetLastError() == ERROR_INTERNET_LOGIN_FAILURE,
"Expected ERROR_INTERNET_LOGIN_FAILURE, got %d\n", GetLastError());
}
else
{
ros_skip_flaky
ok(GetLastError() == ERROR_SUCCESS,
"Expected ERROR_SUCCESS, got %d\n", GetLastError());
InternetCloseHandle(hFtp);

View file

@ -351,6 +351,7 @@ static VOID WINAPI callback(
DWORD dwStatusInformationLength
)
{
ros_skip_flaky
CHECK_EXPECT(dwInternetStatus);
switch (dwInternetStatus)
{
@ -4800,9 +4801,11 @@ static void test_async_read(int port)
ret = InternetReadFileExA( req, &ib, 0, 0xdeadbeef );
if (!count) /* the first part should arrive immediately */
ok( ret, "InternetReadFileExA failed %u\n", GetLastError() );
ros_skip_flaky
if (!ret)
{
ok( GetLastError() == ERROR_IO_PENDING, "expected ERROR_IO_PENDING, got %u\n", GetLastError() );
ros_skip_flaky
CHECK_NOTIFIED( INTERNET_STATUS_RECEIVING_RESPONSE );
SET_EXPECT( INTERNET_STATUS_REQUEST_COMPLETE );
if (!pending_reads++)
@ -4891,6 +4894,7 @@ static void test_async_read(int port)
{
ok( GetLastError() == ERROR_IO_PENDING, "expected ERROR_IO_PENDING, got %u\n", GetLastError() );
ok( bytes == 0, "expected 0, got %u\n", bytes );
ros_skip_flaky
CHECK_NOTIFIED( INTERNET_STATUS_RECEIVING_RESPONSE );
SET_EXPECT( INTERNET_STATUS_REQUEST_COMPLETE );
if (!pending_reads++)
@ -4902,9 +4906,13 @@ static void test_async_read(int port)
res = WaitForSingleObject( complete_event, INFINITE );
ok( res == WAIT_OBJECT_0, "expected WAIT_OBJECT_0, got %u\n", res );
ok( req_error == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", req_error );
ros_skip_flaky {
todo_wine_if( pending_reads > 1 )
ok( bytes != 0, "expected bytes != 0\n" );
}
ros_skip_flaky
CHECK_NOTIFIED( INTERNET_STATUS_RESPONSE_RECEIVED );
ros_skip_flaky
CHECK_NOTIFIED( INTERNET_STATUS_REQUEST_COMPLETE );
}
@ -4913,6 +4921,7 @@ static void test_async_read(int port)
if (!bytes) break;
}
ros_skip_flaky
ok( pending_reads == 1, "expected 1 pending read, got %u\n", pending_reads );
ok( !strcmp(buffer, page1), "unexpected buffer content\n" );
close_async_handle( ses, 2 );
@ -6160,6 +6169,7 @@ static void test_security_flags(void)
}
HeapFree(GetProcessHeap(), 0, cert);
ros_skip_flaky
CHECK_NOTIFIED2(INTERNET_STATUS_CONNECTING_TO_SERVER, 2);
CHECK_NOTIFIED2(INTERNET_STATUS_CONNECTED_TO_SERVER, 2);
CHECK_NOTIFIED2(INTERNET_STATUS_CLOSING_CONNECTION, 2);

View file

@ -53,6 +53,8 @@ extern "C" {
/* debug level */
extern int winetest_debug;
extern int report_success;
/* running in interactive mode? */
extern int winetest_interactive;
@ -65,8 +67,13 @@ extern int winetest_loop_todo(void);
extern void winetest_end_todo(void);
extern int winetest_get_mainargs( char*** pargv );
extern LONG winetest_get_failures(void);
extern LONG winetest_get_successes(void);
extern void winetest_add_failures( LONG new_failures );
extern void winetest_wait_child_process( HANDLE process );
extern void winetest_disable_success_count_start();
extern int winetest_disable_success_count_end();
extern int winetest_disable_success_count_get();
extern int winetest_disable_success_count_set();
extern const char *wine_dbgstr_wn( const WCHAR *str, intptr_t n );
extern const char *wine_dbgstr_guid( const GUID *guid );
@ -121,6 +128,7 @@ extern void __winetest_cdecl winetest_ok( int condition, const char *msg, ... )
extern void __winetest_cdecl winetest_skip( const char *msg, ... ) __attribute__((format (printf,1,2)));
extern void __winetest_cdecl winetest_win_skip( const char *msg, ... ) __attribute__((format (printf,1,2)));
extern void __winetest_cdecl winetest_trace( const char *msg, ... ) __attribute__((format (printf,1,2)));
extern void __winetest_cdecl winetest_print(const char* msg, ...) __attribute__((format(printf, 1, 2)));
#else /* __GNUC__ */
# define WINETEST_PRINTF_ATTR(fmt,args)
@ -128,6 +136,7 @@ extern void __winetest_cdecl winetest_ok( int condition, const char *msg, ... );
extern void __winetest_cdecl winetest_skip( const char *msg, ... );
extern void __winetest_cdecl winetest_win_skip( const char *msg, ... );
extern void __winetest_cdecl winetest_trace( const char *msg, ... );
extern void __winetest_cdecl winetest_print(const char* msg, ...);
#endif /* __GNUC__ */
@ -155,6 +164,14 @@ extern void __winetest_cdecl winetest_trace( const char *msg, ... );
#define todo_wine_if(is_todo) todo_if((is_todo) && !strcmp(winetest_platform, "wine"))
#endif
#define ros_skip_flaky for (winetest_print("Skipping flaky test\n");0;)
#define disable_success_count for (winetest_disable_success_count_start(); \
(winetest_disable_success_count_get() ? \
winetest_disable_success_count_end() : \
winetest_disable_success_count_set()); \
)
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
#ifdef NONAMELESSUNION
@ -241,7 +258,7 @@ int winetest_interactive = 0;
const char *winetest_platform = "windows";
/* report successful tests (BOOL) */
static int report_success = 0;
int report_success = 0;
/* passing arguments around */
static int winetest_argc;
@ -261,6 +278,7 @@ typedef struct
const char* current_file; /* file of current check */
int current_line; /* line of current check */
unsigned int todo_level; /* current todo nesting level */
unsigned int nocount_level;
int todo_do_loop;
char *str_pos; /* position in debug buffer */
char strings[2000]; /* buffer for debug strings */
@ -368,6 +386,7 @@ int winetest_vok( int condition, const char *msg, __winetest_va_list args )
data->current_file, data->current_line );
vfprintf(stdout, msg, args);
}
if (data->nocount_level == 0)
InterlockedIncrement(&todo_successes);
return 1;
}
@ -384,9 +403,10 @@ int winetest_vok( int condition, const char *msg, __winetest_va_list args )
}
else
{
if (report_success)
if (report_success && data->nocount_level == 0)
fprintf( stdout, __winetest_file_line_prefix ": Test succeeded\n",
data->current_file, data->current_line);
if (data->nocount_level == 0)
InterlockedIncrement(&successes);
return 1;
}
@ -416,6 +436,17 @@ void __winetest_cdecl winetest_trace( const char *msg, ... )
}
}
void __winetest_cdecl winetest_print(const char* msg, ...)
{
__winetest_va_list valist;
tls_data* data = get_tls_data();
fprintf(stdout, __winetest_file_line_prefix ": ", data->current_file, data->current_line);
__winetest_va_start(valist, msg);
vfprintf(stdout, msg, valist);
__winetest_va_end(valist);
}
void winetest_vskip( const char *msg, __winetest_va_list args )
{
tls_data* data=get_tls_data();
@ -480,6 +511,11 @@ LONG winetest_get_failures(void)
return failures;
}
LONG winetest_get_successes(void)
{
return successes;
}
void winetest_add_failures( LONG new_failures )
{
while (new_failures-- > 0)
@ -512,6 +548,28 @@ void winetest_wait_child_process( HANDLE process )
}
}
void winetest_disable_success_count_start()
{
get_tls_data()->nocount_level <<= 1;
}
int winetest_disable_success_count_end()
{
get_tls_data()->nocount_level >>= 1;
return 0;
}
int winetest_disable_success_count_get()
{
return get_tls_data()->nocount_level & 1;
}
int winetest_disable_success_count_set()
{
get_tls_data()->nocount_level |= 1;
return 1;
}
const char *wine_dbgstr_wn( const WCHAR *str, intptr_t n )
{
char *dst, *res;