[PATCH] Skip GetMenuItemInfo tests on NT4

Paul Vriens Paul.Vriens.Wine at gmail.com
Wed Nov 5 13:33:28 CST 2008


---
 dlls/user32/tests/menu.c |   37 +++++++++++++++++++++++++++++++------
 1 files changed, 31 insertions(+), 6 deletions(-)

diff --git a/dlls/user32/tests/menu.c b/dlls/user32/tests/menu.c
index e4c4cea..b69ba7a 100644
--- a/dlls/user32/tests/menu.c
+++ b/dlls/user32/tests/menu.c
@@ -57,6 +57,26 @@ static void init_function_pointers(void)
 #undef GET_PROC
 }
 
+static BOOL correct_behavior(void)
+{
+    HMENU hmenu;
+    MENUITEMINFO info;
+    BOOL rc;
+
+    memset( &info, 0, sizeof info );
+    info.cbSize= sizeof(MENUITEMINFO);
+    SetLastError(0xdeadbeef);
+    rc = GetMenuItemInfo( hmenu, 0, TRUE, &info );
+    /* NT4 */
+    if (!rc && GetLastError() == ERROR_INVALID_PARAMETER)
+    {
+        win_skip("NT4 can't handle bigger MENUITEMINFO struct\n");
+        return FALSE;
+    }
+
+    return TRUE;
+}
+
 static LRESULT WINAPI menu_check_wnd_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
 {
     switch (msg)
@@ -2351,13 +2371,21 @@ START_TEST(menu)
 {
     init_function_pointers();
 
+    /* MENUITEMINFO has a different structsize on NT4 and below and fails on NT4 */
+    if (correct_behavior())
+    {
+        test_menu_add_string();
+        test_menu_iteminfo();
+        test_menu_search_bycommand();
+        test_CheckMenuRadioItem();
+        test_menu_resource_layout();
+        test_InsertMenu();
+    }
+
     register_menu_check_class();
 
     test_menu_locked_by_window();
     test_menu_ownerdraw();
-    test_menu_add_string();
-    test_menu_iteminfo();
-    test_menu_search_bycommand();
     test_menu_bmp_and_string();
 
     if( !pSendInput)
@@ -2367,7 +2395,4 @@ START_TEST(menu)
     test_menu_flags();
 
     test_menu_hilitemenuitem();
-    test_CheckMenuRadioItem();
-    test_menu_resource_layout();
-    test_InsertMenu();
 }
-- 
1.5.4.3


--------------040005040705070801050807--



More information about the wine-patches mailing list