Akihiro Sagawa : dinput/tests: Skip DIK code tests if the keyboard type doesn't match.

Alexandre Julliard julliard at winehq.org
Fri Aug 17 12:33:09 CDT 2018


Module: wine
Branch: master
Commit: 93b0080ba333afde8f4492ddde0250d0f8ce454d
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=93b0080ba333afde8f4492ddde0250d0f8ce454d

Author: Akihiro Sagawa <sagawa.aki at gmail.com>
Date:   Fri Aug 17 17:14:58 2018 +0900

dinput/tests: Skip DIK code tests if the keyboard type doesn't match.

Signed-off-by: Akihiro Sagawa <sagawa.aki at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/dinput/tests/keyboard.c | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/dlls/dinput/tests/keyboard.c b/dlls/dinput/tests/keyboard.c
index 151c691..e88cfea 100644
--- a/dlls/dinput/tests/keyboard.c
+++ b/dlls/dinput/tests/keyboard.c
@@ -316,17 +316,23 @@ static void test_dik_codes(IDirectInputA *dI, HWND hwnd, LANGID langid)
     {
         LANGID langid;
         const struct key2dik *map;
+        DWORD type;
     } expected[] =
     {
-        { MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT), key2dik_en },
-        { MAKELANGID(LANG_FRENCH, SUBLANG_FRENCH), key2dik_fr },
-        { MAKELANGID(LANG_GERMAN, SUBLANG_GERMAN), key2dik_de },
-        { MAKELANGID(LANG_JAPANESE, SUBLANG_JAPANESE_JAPAN), key2dik_en }
+        { MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT),
+          key2dik_en, DIDEVTYPEKEYBOARD_PCENH },
+        { MAKELANGID(LANG_FRENCH, SUBLANG_FRENCH),
+          key2dik_fr, DIDEVTYPEKEYBOARD_PCENH },
+        { MAKELANGID(LANG_GERMAN, SUBLANG_GERMAN),
+          key2dik_de, DIDEVTYPEKEYBOARD_PCENH },
+        { MAKELANGID(LANG_JAPANESE, SUBLANG_JAPANESE_JAPAN),
+          key2dik_en, DIDEVTYPEKEYBOARD_JAPAN106 }
     };
     const struct key2dik *map = NULL;
     UINT i;
     HRESULT hr;
     IDirectInputDeviceA *device;
+    DIDEVCAPS caps;
     HKL hkl, hkl_orig;
     MSG msg;
 
@@ -347,6 +353,14 @@ static void test_dik_codes(IDirectInputA *dI, HWND hwnd, LANGID langid)
     ok(hr == S_OK, "SetDataFormat() failed: %08x\n", hr);
     hr = IDirectInputDevice_Acquire(device);
     ok(hr == S_OK, "Acquire() failed: %08x\n", hr);
+    caps.dwSize = sizeof( caps );
+    hr = IDirectInputDevice_GetCapabilities(device, &caps);
+    ok(hr == S_OK, "GetDeviceInstance() failed: %08x\n", hr);
+    if (expected[i].type != GET_DIDEVICE_SUBTYPE(caps.dwDevType)) {
+        skip("Keyboard type(%u) doesn't match for lang %04x\n",
+             GET_DIDEVICE_SUBTYPE(caps.dwDevType), langid);
+        goto fail;
+    }
 
     hkl = activate_keyboard_layout(langid, &hkl_orig);
     if (!hkl) goto fail;




More information about the wine-cvs mailing list