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