Dan Kegel : kernel32: Add initial test for DefineDosDevice.

Alexandre Julliard julliard at winehq.org
Mon Jul 25 11:43:12 CDT 2011


Module: wine
Branch: master
Commit: c63d085d1f0dd1d7c28aa7e17fbfd21180e24c6b
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=c63d085d1f0dd1d7c28aa7e17fbfd21180e24c6b

Author: Dan Kegel <dank at kegel.com>
Date:   Sat Jul 23 15:09:57 2011 -0700

kernel32: Add initial test for DefineDosDevice.

---

 dlls/kernel32/tests/volume.c |   35 +++++++++++++++++++++++++++++++++++
 1 files changed, 35 insertions(+), 0 deletions(-)

diff --git a/dlls/kernel32/tests/volume.c b/dlls/kernel32/tests/volume.c
index fb920f3..813ff0b 100644
--- a/dlls/kernel32/tests/volume.c
+++ b/dlls/kernel32/tests/volume.c
@@ -75,6 +75,40 @@ static void test_query_dos_deviceA(void)
     HeapFree( GetProcessHeap(), 0, buffer );
 }
 
+void test_define_dos_deviceA(void)
+{
+    char drivestr[3];
+    char buf[MAX_PATH];
+    DWORD ret;
+
+    /* Find an unused drive letter */
+    drivestr[1] = ':';
+    drivestr[2] = 0;
+    for (drivestr[0] = 'a'; drivestr[0] <= 'z'; drivestr[0]++) {
+        ret = QueryDosDeviceA( drivestr, buf, sizeof(buf));
+        if (!ret) break;
+    }
+    if (drivestr[0] > 'z') {
+        skip("can't test creating a dos drive, none available\n");
+        return;
+    }
+
+    /* Map it to point to the current directory */
+    ret = GetCurrentDirectory(sizeof(buf), buf);
+    ok(ret, "GetCurrentDir\n");
+
+    ret = DefineDosDeviceA(0, drivestr, buf);
+    todo_wine
+    ok(ret, "Could not make drive %s point to %s! \n", drivestr, buf);
+
+    if (!ret) {
+        skip("can't test removing fake drive\n");
+    } else {
+	ret = DefineDosDeviceA(DDD_REMOVE_DEFINITION, drivestr, NULL);
+	ok(ret, "Could not remove fake drive %s!\n", drivestr);
+    }
+}
+
 static void test_FindFirstVolume(void)
 {
     char volume[51];
@@ -705,6 +739,7 @@ START_TEST(volume)
     pGetVolumePathNamesForVolumeNameW = (void *) GetProcAddress(hdll, "GetVolumePathNamesForVolumeNameW");
 
     test_query_dos_deviceA();
+    test_define_dos_deviceA();
     test_FindFirstVolume();
     test_GetVolumeNameForVolumeMountPointA();
     test_GetVolumeNameForVolumeMountPointW();




More information about the wine-cvs mailing list