scrrun/tests: Move code to get a fixed drive to a function.

Signed-off-by: Joachim Priesner <joachim.priesner@web.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Joachim Priesner 2016-01-28 17:13:11 +01:00 committed by Alexandre Julliard
parent 5b9a11a01c
commit 9b0a9c4dea
1 changed files with 45 additions and 32 deletions

View File

@ -59,6 +59,47 @@ static inline void get_temp_path(const WCHAR *prefix, WCHAR *path)
DeleteFileW(path);
}
static IDrive *get_fixed_drive(void)
{
IDriveCollection *drives;
IEnumVARIANT *iter;
IDrive *drive;
HRESULT hr;
hr = IFileSystem3_get_Drives(fs3, &drives);
ok(hr == S_OK, "got 0x%08x\n", hr);
hr = IDriveCollection_get__NewEnum(drives, (IUnknown**)&iter);
ok(hr == S_OK, "got 0x%08x\n", hr);
IDriveCollection_Release(drives);
while (1) {
DriveTypeConst type;
VARIANT var;
hr = IEnumVARIANT_Next(iter, 1, &var, NULL);
if (hr == S_FALSE) {
drive = NULL;
break;
}
ok(hr == S_OK, "got 0x%08x\n", hr);
hr = IDispatch_QueryInterface(V_DISPATCH(&var), &IID_IDrive, (void**)&drive);
ok(hr == S_OK, "got 0x%08x\n", hr);
VariantClear(&var);
hr = IDrive_get_DriveType(drive, &type);
ok(hr == S_OK, "got 0x%08x\n", hr);
if (type == Fixed)
break;
IDrive_Release(drive);
}
IEnumVARIANT_Release(iter);
return drive;
}
static void test_interfaces(void)
{
static const WCHAR nonexistent_dirW[] = {
@ -1914,43 +1955,16 @@ static void test_GetDriveName(void)
static void test_SerialNumber(void)
{
IDriveCollection *drives;
IEnumVARIANT *iter;
IDrive *drive;
LONG serial;
HRESULT hr;
BSTR name;
hr = IFileSystem3_get_Drives(fs3, &drives);
ok(hr == S_OK, "got 0x%08x\n", hr);
hr = IDriveCollection_get__NewEnum(drives, (IUnknown**)&iter);
ok(hr == S_OK, "got 0x%08x\n", hr);
IDriveCollection_Release(drives);
while (1) {
DriveTypeConst type;
VARIANT var;
hr = IEnumVARIANT_Next(iter, 1, &var, NULL);
if (hr == S_FALSE) {
drive = get_fixed_drive();
if (!drive) {
skip("No fixed drive found, skipping test.\n");
IEnumVARIANT_Release(iter);
return;
}
ok(hr == S_OK, "got 0x%08x\n", hr);
hr = IDispatch_QueryInterface(V_DISPATCH(&var), &IID_IDrive, (void**)&drive);
ok(hr == S_OK, "got 0x%08x\n", hr);
VariantClear(&var);
hr = IDrive_get_DriveType(drive, &type);
ok(hr == S_OK, "got 0x%08x\n", hr);
if (type == Fixed)
break;
IDrive_Release(drive);
}
hr = IDrive_get_SerialNumber(drive, NULL);
ok(hr == E_POINTER, "got 0x%08x\n", hr);
@ -1979,7 +1993,6 @@ static void test_SerialNumber(void)
SysFreeString(name);
IDrive_Release(drive);
IEnumVARIANT_Release(iter);
}
static const struct extension_test {