Module: wine Branch: master Commit: c63d085d1f0dd1d7c28aa7e17fbfd21180e24c6b URL: http://source.winehq.org/git/wine.git/?a=commit;h=c63d085d1f0dd1d7c28aa7e17f...
Author: Dan Kegel dank@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();