mirror of
https://github.com/reactos/reactos.git
synced 2025-01-06 06:20:13 +00:00
[USER32_WINETEST]
- Split user32:msg test to 14 separate tests - The original test consisted of more than 14k lines of code svn path=/trunk/; revision=66454
This commit is contained in:
parent
4c25d9683c
commit
e657208f02
2 changed files with 270 additions and 2 deletions
|
@ -13324,7 +13324,11 @@ static void test_WaitForInputIdle( char *argv0 )
|
|||
{
|
||||
ResetEvent( start_event );
|
||||
ResetEvent( end_event );
|
||||
#if 0
|
||||
sprintf( path, "%s msg %u", argv0, i );
|
||||
#else
|
||||
sprintf( path, "%s msg_queue %u", argv0, i );
|
||||
#endif
|
||||
ret = CreateProcessA( NULL, path, NULL, NULL, TRUE, 0, NULL, NULL, &startup, &pi );
|
||||
ok( ret, "CreateProcess '%s' failed err %u.\n", path, GetLastError() );
|
||||
if (ret)
|
||||
|
@ -14483,6 +14487,7 @@ static void init_funcs(void)
|
|||
#undef X
|
||||
}
|
||||
|
||||
#if 0
|
||||
START_TEST(msg)
|
||||
{
|
||||
char **test_argv;
|
||||
|
@ -14623,3 +14628,239 @@ START_TEST(msg)
|
|||
}
|
||||
DeleteCriticalSection( &sequence_cs );
|
||||
}
|
||||
#endif
|
||||
|
||||
static void init_tests()
|
||||
{
|
||||
HMODULE hModuleImm32;
|
||||
BOOL (WINAPI *pImmDisableIME)(DWORD);
|
||||
|
||||
init_funcs();
|
||||
|
||||
InitializeCriticalSection( &sequence_cs );
|
||||
init_procs();
|
||||
|
||||
hModuleImm32 = LoadLibraryA("imm32.dll");
|
||||
if (hModuleImm32) {
|
||||
pImmDisableIME = (void *)GetProcAddress(hModuleImm32, "ImmDisableIME");
|
||||
if (pImmDisableIME)
|
||||
pImmDisableIME(0);
|
||||
}
|
||||
pImmDisableIME = NULL;
|
||||
FreeLibrary(hModuleImm32);
|
||||
|
||||
if (!RegisterWindowClasses()) assert(0);
|
||||
|
||||
cbt_hook_thread_id = GetCurrentThreadId();
|
||||
hCBT_hook = SetWindowsHookExA(WH_CBT, cbt_hook_proc, 0, GetCurrentThreadId());
|
||||
if (!hCBT_hook) win_skip( "cannot set global hook, will skip hook tests\n" );
|
||||
}
|
||||
|
||||
static void cleanup_tests()
|
||||
{
|
||||
BOOL ret;
|
||||
UnhookWindowsHookEx(hCBT_hook);
|
||||
if (pUnhookWinEvent && hEvent_hook)
|
||||
{
|
||||
ret = pUnhookWinEvent(hEvent_hook);
|
||||
ok( ret, "UnhookWinEvent error %d\n", GetLastError());
|
||||
SetLastError(0xdeadbeef);
|
||||
ok(!pUnhookWinEvent(hEvent_hook), "UnhookWinEvent succeeded\n");
|
||||
ok(GetLastError() == ERROR_INVALID_HANDLE || /* Win2k */
|
||||
GetLastError() == 0xdeadbeef, /* Win9x */
|
||||
"unexpected error %d\n", GetLastError());
|
||||
}
|
||||
DeleteCriticalSection( &sequence_cs );
|
||||
|
||||
}
|
||||
|
||||
START_TEST(msg_queue)
|
||||
{
|
||||
int argc;
|
||||
char **test_argv;
|
||||
argc = winetest_get_mainargs( &test_argv );
|
||||
if (argc >= 3)
|
||||
{
|
||||
unsigned int arg;
|
||||
/* Child process. */
|
||||
sscanf (test_argv[2], "%d", (unsigned int *) &arg);
|
||||
do_wait_idle_child( arg );
|
||||
return;
|
||||
}
|
||||
|
||||
init_tests();
|
||||
test_PostMessage();
|
||||
test_PeekMessage();
|
||||
test_PeekMessage2();
|
||||
test_interthread_messages();
|
||||
test_DispatchMessage();
|
||||
test_SendMessageTimeout();
|
||||
test_quit_message();
|
||||
test_WaitForInputIdle( test_argv[0] );
|
||||
test_DestroyWindow();
|
||||
cleanup_tests();
|
||||
}
|
||||
|
||||
START_TEST(msg_messages)
|
||||
{
|
||||
init_tests();
|
||||
test_message_conversion();
|
||||
test_messages();
|
||||
test_wmime_keydown_message();
|
||||
test_nullCallback();
|
||||
test_dbcs_wm_char();
|
||||
test_unicode_wm_char();
|
||||
test_defwinproc();
|
||||
cleanup_tests();
|
||||
}
|
||||
|
||||
START_TEST(msg_focus)
|
||||
{
|
||||
init_tests();
|
||||
test_SetFocus();
|
||||
test_SetActiveWindow();
|
||||
|
||||
/* keep it the last test, under Windows it tends to break the tests
|
||||
* which rely on active/foreground windows being correct.
|
||||
*/
|
||||
test_SetForegroundWindow();
|
||||
cleanup_tests();
|
||||
}
|
||||
|
||||
START_TEST(msg_winpos)
|
||||
{
|
||||
init_tests();
|
||||
test_SetParent();
|
||||
test_ShowWindow();
|
||||
test_setwindowpos();
|
||||
test_showwindow();
|
||||
test_SetWindowRgn();
|
||||
invisible_parent_tests();
|
||||
cleanup_tests();
|
||||
}
|
||||
|
||||
START_TEST(msg_paint)
|
||||
{
|
||||
init_tests();
|
||||
test_scrollwindowex();
|
||||
test_paint_messages();
|
||||
test_paintingloop();
|
||||
cleanup_tests();
|
||||
}
|
||||
|
||||
START_TEST(msg_input)
|
||||
{
|
||||
init_tests();
|
||||
test_accelerators();
|
||||
if (!pTrackMouseEvent)
|
||||
win_skip("TrackMouseEvent is not available\n");
|
||||
else
|
||||
test_TrackMouseEvent();
|
||||
|
||||
test_keyflags();
|
||||
test_hotkey();
|
||||
cleanup_tests();
|
||||
}
|
||||
|
||||
START_TEST(msg_timer)
|
||||
{
|
||||
init_tests();
|
||||
test_timers();
|
||||
test_timers_no_wnd();
|
||||
cleanup_tests();
|
||||
}
|
||||
|
||||
typedef BOOL (WINAPI *IS_WINEVENT_HOOK_INSTALLED)(DWORD);
|
||||
|
||||
START_TEST(msg_hook)
|
||||
{
|
||||
// HMODULE user32 = GetModuleHandleA("user32.dll");
|
||||
// IS_WINEVENT_HOOK_INSTALLED pIsWinEventHookInstalled = (IS_WINEVENT_HOOK_INSTALLED)GetProcAddress(user32, "IsWinEventHookInstalled");
|
||||
BOOL (WINAPI *pIsWinEventHookInstalled)(DWORD)= 0;/*GetProcAddress(user32, "IsWinEventHookInstalled");*/
|
||||
|
||||
init_tests();
|
||||
|
||||
if (pSetWinEventHook)
|
||||
{
|
||||
hEvent_hook = pSetWinEventHook(EVENT_MIN, EVENT_MAX,
|
||||
GetModuleHandleA(0), win_event_proc,
|
||||
0, GetCurrentThreadId(),
|
||||
WINEVENT_INCONTEXT);
|
||||
if (pIsWinEventHookInstalled && hEvent_hook)
|
||||
{
|
||||
UINT event;
|
||||
for (event = EVENT_MIN; event <= EVENT_MAX; event++)
|
||||
ok(pIsWinEventHookInstalled(event), "IsWinEventHookInstalled(%u) failed\n", event);
|
||||
}
|
||||
}
|
||||
if (!hEvent_hook) win_skip( "no win event hook support\n" );
|
||||
|
||||
test_winevents();
|
||||
|
||||
/* Fix message sequences before removing 4 lines below */
|
||||
if (pUnhookWinEvent && hEvent_hook)
|
||||
{
|
||||
BOOL ret;
|
||||
ret = pUnhookWinEvent(hEvent_hook);
|
||||
ok( ret, "UnhookWinEvent error %d\n", GetLastError());
|
||||
pUnhookWinEvent = 0;
|
||||
}
|
||||
hEvent_hook = 0;
|
||||
if (hCBT_hook) test_set_hook();
|
||||
cleanup_tests();
|
||||
}
|
||||
|
||||
START_TEST(msg_menu)
|
||||
{
|
||||
init_tests();
|
||||
test_sys_menu();
|
||||
test_menu_messages();
|
||||
if(!winetest_interactive)
|
||||
skip("CORE-8299 : Skip Tracking popup menu tests.\n");
|
||||
else
|
||||
{
|
||||
test_TrackPopupMenu();
|
||||
test_TrackPopupMenuEmpty();
|
||||
}
|
||||
cleanup_tests();
|
||||
}
|
||||
|
||||
START_TEST(msg_mdi)
|
||||
{
|
||||
init_tests();
|
||||
test_mdi_messages();
|
||||
cleanup_tests();
|
||||
}
|
||||
|
||||
START_TEST(msg_controls)
|
||||
{
|
||||
init_tests();
|
||||
test_button_messages();
|
||||
test_static_messages();
|
||||
test_listbox_messages();
|
||||
test_combobox_messages();
|
||||
test_edit_messages();
|
||||
cleanup_tests();
|
||||
}
|
||||
|
||||
START_TEST(msg_layered_window)
|
||||
{
|
||||
init_tests();
|
||||
test_layered_window();
|
||||
cleanup_tests();
|
||||
}
|
||||
|
||||
START_TEST(msg_dialog)
|
||||
{
|
||||
init_tests();
|
||||
test_dialog_messages();
|
||||
test_EndDialog();
|
||||
cleanup_tests();
|
||||
}
|
||||
|
||||
START_TEST(msg_clipboard)
|
||||
{
|
||||
init_tests();
|
||||
test_clipboard_viewers();
|
||||
cleanup_tests();
|
||||
}
|
||||
|
|
|
@ -17,7 +17,21 @@ extern void func_input(void);
|
|||
extern void func_listbox(void);
|
||||
extern void func_menu(void);
|
||||
extern void func_monitor(void);
|
||||
extern void func_msg(void);
|
||||
//extern void func_msg(void);
|
||||
extern void func_msg_queue(void);
|
||||
extern void func_msg_messages(void);
|
||||
extern void func_msg_focus(void);
|
||||
extern void func_msg_winpos(void);
|
||||
extern void func_msg_paint(void);
|
||||
extern void func_msg_input(void);
|
||||
extern void func_msg_timer(void);
|
||||
extern void func_msg_hook(void);
|
||||
extern void func_msg_menu(void);
|
||||
extern void func_msg_mdi(void);
|
||||
extern void func_msg_controls(void);
|
||||
extern void func_msg_layered_window(void);
|
||||
extern void func_msg_dialog(void);
|
||||
extern void func_msg_clipboard(void);
|
||||
extern void func_resource(void);
|
||||
extern void func_scroll(void);
|
||||
extern void func_static(void);
|
||||
|
@ -44,7 +58,20 @@ const struct test winetest_testlist[] =
|
|||
{ "listbox", func_listbox },
|
||||
{ "menu", func_menu },
|
||||
{ "monitor", func_monitor },
|
||||
{ "msg", func_msg },
|
||||
{ "msg_queue", func_msg_queue},
|
||||
{ "msg_messages", func_msg_messages},
|
||||
{ "msg_focus", func_msg_focus},
|
||||
{ "msg_winpos", func_msg_winpos},
|
||||
{ "msg_paint", func_msg_paint},
|
||||
{ "msg_input", func_msg_input},
|
||||
{ "msg_timer", func_msg_timer},
|
||||
{ "msg_hook", func_msg_hook},
|
||||
{ "msg_menu", func_msg_menu},
|
||||
{ "msg_mdi", func_msg_mdi},
|
||||
{ "msg_controls", func_msg_controls},
|
||||
{ "msg_layered_window", func_msg_layered_window},
|
||||
{ "msg_dialog", func_msg_dialog},
|
||||
{ "msg_clipboard", func_msg_clipboard},
|
||||
{ "resource", func_resource },
|
||||
{ "scroll", func_scroll },
|
||||
{ "static", func_static },
|
||||
|
|
Loading…
Reference in a new issue