kernel32/tests: Test GetVolumeInformation when current directory is a root directory.

Nicolas Le Cam niko.lecam at gmail.com
Mon Jul 13 13:09:37 CDT 2009


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

diff --git a/dlls/kernel32/tests/volume.c b/dlls/kernel32/tests/volume.c
index 4f8c1c0..09aa4b3 100644
--- a/dlls/kernel32/tests/volume.c
+++ b/dlls/kernel32/tests/volume.c
@@ -299,6 +299,7 @@ static void test_GetVolumeInformationA(void)
     DWORD vol_name_size=MAX_PATH+1, vol_serial_num=-1, max_comp_len=0, fs_flags=0, fs_name_len=MAX_PATH+1;
     char vol_name_buf[MAX_PATH+1], fs_name_buf[MAX_PATH+1];
     char windowsdir[MAX_PATH+10];
+    char currentdir[MAX_PATH+1];
 
     if (!pGetVolumeInformationA) {
         win_skip("GetVolumeInformationA not found\n");
@@ -328,6 +329,29 @@ static void test_GetVolumeInformationA(void)
     ok(!ret && GetLastError() == ERROR_INVALID_NAME,
         "GetVolumeInformationA w/o '\\' did not fail, last error %u\n", GetLastError());
 
+    result = GetCurrentDirectory(MAX_PATH, currentdir);
+    ok(result, "GetCurrentDirectory: error %d\n", GetLastError());
+
+    /* check for error on no trailing \ when current dir is root dir */
+    ret = SetCurrentDirectory(Root_Dir1);
+    ok(ret, "SetCurrentDirectory: error %d\n", GetLastError());
+    ret = pGetVolumeInformationA(Root_Dir0, vol_name_buf, vol_name_size, NULL,
+            NULL, NULL, fs_name_buf, fs_name_len);
+    todo_wine
+    ok(ret, "GetVolumeInformationA failed, last error %u\n", GetLastError());
+
+    /* check for error on no trailing \ when current dir is windows dir */
+    ret = SetCurrentDirectory(windowsdir);
+    ok(ret, "SetCurrentDirectory: error %d\n", GetLastError());
+    ret = pGetVolumeInformationA(Root_Dir0, vol_name_buf, vol_name_size, NULL,
+            NULL, NULL, fs_name_buf, fs_name_len);
+    ok(!ret && GetLastError() == ERROR_INVALID_NAME,
+        "GetVolumeInformationA did not fail, last error %u\n", GetLastError());
+
+    /* reset current directory */
+    ret = SetCurrentDirectory(currentdir);
+    ok(ret, "SetCurrentDirectory: error %d\n", GetLastError());
+
     /* try null root directory to return "root of the current directory"  */
     ret = pGetVolumeInformationA(NULL, vol_name_buf, vol_name_size, NULL,
             NULL, NULL, fs_name_buf, fs_name_len);
-- 
1.6.0.4


--=-+cUYZ36sT9z8bOG+Em+i--




More information about the wine-patches mailing list