[PATCH v6 2/2] kernel32/test: Add SeekPenalty Test to Volume.c
David Koolhoven
david at koolhoven-home.net
Mon May 24 18:14:13 CDT 2021
Helps test for compatibility with SeekPenaltyQueryProperty.
Signed-off-by: David Koolhoven <david at koolhoven-home.net>
---
dlls/kernel32/tests/volume.c | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/dlls/kernel32/tests/volume.c b/dlls/kernel32/tests/volume.c
index ed3897a6b94..019f764019c 100644
--- a/dlls/kernel32/tests/volume.c
+++ b/dlls/kernel32/tests/volume.c
@@ -654,6 +654,40 @@ static void test_disk_query_property(void)
CloseHandle(handle);
}
+static void test_disk_query_seek_penalty_property(void)
+{
+ STORAGE_PROPERTY_QUERY query = {0};
+ DEVICE_SEEK_PENALTY_DESCRIPTOR descriptor = {0};
+ HANDLE handle;
+ DWORD error;
+ DWORD size;
+ BOOL ret;
+
+ handle = CreateFileA("\\\\.\\PhysicalDrive0", GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING,
+ 0, 0);
+ if (handle == INVALID_HANDLE_VALUE)
+ {
+ win_skip("can't open \\\\.\\PhysicalDrive0 %#x\n", GetLastError());
+ return;
+ }
+
+ query.PropertyId = (STORAGE_PROPERTY_ID)StorageDeviceSeekPenaltyProperty;
+ query.QueryType = PropertyStandardQuery;
+
+ SetLastError(0xdeadbeef);
+ ret = DeviceIoControl(handle, IOCTL_STORAGE_QUERY_PROPERTY, &query, sizeof(query), &descriptor, sizeof(descriptor),
+ &size, NULL);
+ error = GetLastError();
+ /* Only should complete on Win7 and Win10 */
+ ok((ret) || (ret == ERROR_NOT_SUPPORTED), "expect ret %#x, got %#x\n", TRUE, ret);
+ ok((error == 0xdeadbeef) || (error == ERROR_NOT_SUPPORTED), "expect err %#x, got err %#x\n", 0xdeadbeef, error);
+ ok(size == sizeof(descriptor), "got size %d\n", size);
+ ok(descriptor.Version == sizeof(descriptor), "got descriptor.Version %d\n", descriptor.Version);
+ ok(descriptor.Size >= sizeof(descriptor), "got descriptor.Size %d\n", descriptor.Size);
+
+ CloseHandle(handle);
+}
+
static void test_GetVolumePathNameA(void)
{
char volume_path[MAX_PATH], cwd[MAX_PATH], expect_path[MAX_PATH];
@@ -1645,6 +1679,7 @@ START_TEST(volume)
test_enum_vols();
test_disk_extents();
test_disk_query_property();
+ test_disk_query_seek_penalty_property();
test_GetVolumePathNamesForVolumeNameA();
test_GetVolumePathNamesForVolumeNameW();
test_cdrom_ioctl();
--
2.19.1
More information about the wine-devel
mailing list