[PATCH v3 6/6] ntoskrnl.exe/tests: Add some HidP_InitializeReportForID tests.
Rémi Bernon
rbernon at codeweavers.com
Fri Jun 4 04:12:20 CDT 2021
Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---
dlls/ntoskrnl.exe/tests/ntoskrnl.c | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/dlls/ntoskrnl.exe/tests/ntoskrnl.c b/dlls/ntoskrnl.exe/tests/ntoskrnl.c
index 099f747ff86..bd7dc2093e9 100644
--- a/dlls/ntoskrnl.exe/tests/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/tests/ntoskrnl.c
@@ -1626,7 +1626,7 @@ static void test_hid_device(void)
{0}, 1, 1, 3, 11, 0, 0, 0, 0, 0, 0
};
- char buffer[200];
+ char buffer[200], report[200];
SP_DEVICE_INTERFACE_DETAIL_DATA_A *iface_detail = (void *)buffer;
SP_DEVICE_INTERFACE_DATA iface = {sizeof(iface)};
SP_DEVINFO_DATA device = {sizeof(device)};
@@ -1861,6 +1861,24 @@ static void test_hid_device(void)
todo_wine ok(status == HIDP_STATUS_USAGE_NOT_FOUND, "HidP_GetSpecificValueCaps returned %#x\n", status);
ok(count == 0, "HidP_GetSpecificValueCaps returned count %d, expected %d\n", count, 0);
+ status = HidP_InitializeReportForID(HidP_Input, 0, (PHIDP_PREPARSED_DATA)buffer, report, sizeof(report));
+ ok(status == HIDP_STATUS_INVALID_PREPARSED_DATA, "HidP_InitializeReportForID returned %#x\n", status);
+ status = HidP_InitializeReportForID(HidP_Feature + 1, 0, preparsed_data, report, sizeof(report));
+ ok(status == HIDP_STATUS_INVALID_REPORT_TYPE, "HidP_InitializeReportForID returned %#x\n", status);
+ status = HidP_InitializeReportForID(HidP_Input, 0, preparsed_data, report, sizeof(report));
+ ok(status == HIDP_STATUS_INVALID_REPORT_LENGTH, "HidP_InitializeReportForID returned %#x\n", status);
+ status = HidP_InitializeReportForID(HidP_Input, 0, preparsed_data, report, caps.InputReportByteLength + 1);
+ ok(status == HIDP_STATUS_INVALID_REPORT_LENGTH, "HidP_InitializeReportForID returned %#x\n", status);
+
+ memset(report, 0xcd, sizeof(report));
+ status = HidP_InitializeReportForID(HidP_Input, 0, preparsed_data, report, caps.InputReportByteLength);
+ ok(status == HIDP_STATUS_SUCCESS, "HidP_InitializeReportForID returned %#x\n", status);
+
+ memset(buffer, 0xcd, sizeof(buffer));
+ memset(buffer, 0, 5);
+ buffer[0] = 0;
+ ok(!memcmp(buffer, report, sizeof(buffer)), "unexpected report data\n");
+
HidD_FreePreparsedData(preparsed_data);
CloseHandle(file);
--
2.31.0
More information about the wine-devel
mailing list