[2/3] scrrun/tests: Refactor code to get a fixed drive into a method. (try 2)
Joachim Priesner
joachim.priesner at web.de
Thu Oct 15 16:36:21 CDT 2015
v2 - no changes
Signed-off-by: Joachim Priesner <joachim.priesner at web.de>
---
dlls/scrrun/tests/filesystem.c | 75 ++++++++++++++++++++++++------------------
1 file changed, 43 insertions(+), 32 deletions(-)
diff --git a/dlls/scrrun/tests/filesystem.c b/dlls/scrrun/tests/filesystem.c
index 5270726..488aba4 100644
--- a/dlls/scrrun/tests/filesystem.c
+++ b/dlls/scrrun/tests/filesystem.c
@@ -59,6 +59,45 @@ static inline void get_temp_path(const WCHAR *prefix, WCHAR *path)
DeleteFileW(path);
}
+static void get_fixed_drive(IDrive **drive)
+{
+ IDriveCollection *drives;
+ IEnumVARIANT *iter;
+ 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);
+}
+
static void test_interfaces(void)
{
static const WCHAR nonexistent_dirW[] = {
@@ -1903,42 +1942,15 @@ 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) {
- 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);
+ get_fixed_drive(&drive);
+ if (!drive) {
+ skip("No fixed drive found, skipping test.\n");
+ return;
}
hr = IDrive_get_SerialNumber(drive, NULL);
@@ -1968,7 +1980,6 @@ static void test_SerialNumber(void)
SysFreeString(name);
IDrive_Release(drive);
- IEnumVARIANT_Release(iter);
}
static const struct extension_test {
--
2.1.4
More information about the wine-patches
mailing list