Bruno Jesus : kernel32/tests: Add tests for GetVolumePathNameA().

Alexandre Julliard julliard at winehq.org
Mon Jul 29 14:01:18 CDT 2013


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

Author: Bruno Jesus <00cpxxx at gmail.com>
Date:   Sun Jul 28 15:01:32 2013 -0300

kernel32/tests: Add tests for GetVolumePathNameA().

---

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

diff --git a/dlls/kernel32/tests/volume.c b/dlls/kernel32/tests/volume.c
index f7879c8..e63a2ef 100644
--- a/dlls/kernel32/tests/volume.c
+++ b/dlls/kernel32/tests/volume.c
@@ -53,6 +53,7 @@ static BOOL (WINAPI *pFindVolumeClose)(HANDLE);
 static UINT (WINAPI *pGetLogicalDriveStringsA)(UINT,LPSTR);
 static UINT (WINAPI *pGetLogicalDriveStringsW)(UINT,LPWSTR);
 static BOOL (WINAPI *pGetVolumeInformationA)(LPCSTR, LPSTR, DWORD, LPDWORD, LPDWORD, LPDWORD, LPSTR, DWORD);
+static BOOL (WINAPI *pGetVolumePathNameA)(LPCSTR, LPSTR, DWORD);
 static BOOL (WINAPI *pGetVolumePathNamesForVolumeNameA)(LPCSTR, LPSTR, DWORD, LPDWORD);
 static BOOL (WINAPI *pGetVolumePathNamesForVolumeNameW)(LPCWSTR, LPWSTR, DWORD, LPDWORD);
 
@@ -588,6 +589,83 @@ static void test_disk_extents(void)
     CloseHandle( handle );
 }
 
+static void test_GetVolumePathNameA(void)
+{
+    BOOL ret;
+    char volume[MAX_PATH];
+    char expected[] = "C:\\", pathC1[] = "C:\\", pathC2[] = "C::";
+    DWORD error;
+
+    if (!pGetVolumePathNameA)
+    {
+        win_skip("required functions not found\n");
+        return;
+    }
+
+    SetLastError( 0xdeadbeef );
+    ret = pGetVolumePathNameA(NULL, NULL, 0);
+    error = GetLastError();
+    ok(!ret, "expected failure\n");
+todo_wine
+    ok(error == ERROR_INVALID_PARAMETER
+       || broken( error == 0xdeadbeef) /* <=XP */,
+       "expected ERROR_INVALID_PARAMETER got %u\n", error);
+
+    SetLastError( 0xdeadbeef );
+    ret = pGetVolumePathNameA("", NULL, 0);
+    error = GetLastError();
+    ok(!ret, "expected failure\n");
+todo_wine
+    ok(error == ERROR_INVALID_PARAMETER
+       || broken( error == 0xdeadbeef) /* <=XP */,
+       "expected ERROR_INVALID_PARAMETER got %u\n", error);
+
+    SetLastError( 0xdeadbeef );
+    ret = pGetVolumePathNameA(pathC1, NULL, 0);
+    error = GetLastError();
+    ok(!ret, "expected failure\n");
+todo_wine
+    ok(error == ERROR_INVALID_PARAMETER
+       || broken(error == ERROR_FILENAME_EXCED_RANGE) /* <=XP */,
+       "expected ERROR_INVALID_PARAMETER got %u\n", error);
+
+    SetLastError( 0xdeadbeef );
+    ret = pGetVolumePathNameA(pathC1, volume, 0);
+    error = GetLastError();
+    ok(!ret, "expected failure\n");
+todo_wine
+    ok(error == ERROR_INVALID_PARAMETER
+       || broken(error == ERROR_FILENAME_EXCED_RANGE ) /* <=XP */,
+       "expected ERROR_INVALID_PARAMETER got %u\n", error);
+
+    SetLastError( 0xdeadbeef );
+    ret = pGetVolumePathNameA(pathC1, volume, 1);
+    error = GetLastError();
+    ok(!ret, "expected failure\n");
+todo_wine
+    ok(error == ERROR_FILENAME_EXCED_RANGE, "expected ERROR_FILENAME_EXCED_RANGE got %u\n", error);
+
+    volume[0] = '\0';
+    ret = pGetVolumePathNameA(pathC1, volume, sizeof(volume));
+    ok(ret, "expected success\n");
+    ok(!strcmp(expected, volume), "expected name '%s', returned '%s'\n", pathC1, volume);
+
+    pathC1[0] = tolower(pathC1[0]);
+    volume[0] = '\0';
+    ret = pGetVolumePathNameA(pathC1, volume, sizeof(volume));
+    ok(ret, "expected success\n");
+todo_wine
+    ok(!strcmp(expected, volume) || broken(!strcasecmp(expected, volume)) /* <=XP */,
+       "expected name '%s', returned '%s'\n", expected, volume);
+
+    volume[0] = '\0';
+    ret = pGetVolumePathNameA(pathC2, volume, sizeof(volume));
+todo_wine
+    ok(ret, "expected success\n");
+todo_wine
+    ok(!strcmp(expected, volume), "expected name '%s', returned '%s'\n", expected, volume);
+}
+
 static void test_GetVolumePathNamesForVolumeNameA(void)
 {
     BOOL ret;
@@ -926,12 +1004,14 @@ START_TEST(volume)
     pGetLogicalDriveStringsA = (void *) GetProcAddress(hdll, "GetLogicalDriveStringsA");
     pGetLogicalDriveStringsW = (void *) GetProcAddress(hdll, "GetLogicalDriveStringsW");
     pGetVolumeInformationA = (void *) GetProcAddress(hdll, "GetVolumeInformationA");
+    pGetVolumePathNameA = (void *) GetProcAddress(hdll, "GetVolumePathNameA");
     pGetVolumePathNamesForVolumeNameA = (void *) GetProcAddress(hdll, "GetVolumePathNamesForVolumeNameA");
     pGetVolumePathNamesForVolumeNameW = (void *) GetProcAddress(hdll, "GetVolumePathNamesForVolumeNameW");
 
     test_query_dos_deviceA();
     test_define_dos_deviceA();
     test_FindFirstVolume();
+    test_GetVolumePathNameA();
     test_GetVolumeNameForVolumeMountPointA();
     test_GetVolumeNameForVolumeMountPointW();
     test_GetLogicalDriveStringsA();




More information about the wine-cvs mailing list