kernel32: Added GetLogicalDriveStrings tests.
This commit is contained in:
parent
2e9aa16da9
commit
a849136d5e
|
@ -27,6 +27,8 @@ static BOOL (WINAPI * pGetVolumeNameForVolumeMountPointW)(LPCWSTR, LPWSTR, DWORD
|
|||
static HANDLE (WINAPI *pFindFirstVolumeA)(LPSTR,DWORD);
|
||||
static BOOL (WINAPI *pFindNextVolumeA)(HANDLE,LPSTR,DWORD);
|
||||
static BOOL (WINAPI *pFindVolumeClose)(HANDLE);
|
||||
static UINT (WINAPI *pGetLogicalDriveStringsA)(UINT,LPSTR);
|
||||
static UINT (WINAPI *pGetLogicalDriveStringsW)(UINT,LPWSTR);
|
||||
|
||||
/* ############################### */
|
||||
|
||||
|
@ -139,6 +141,74 @@ static void test_GetVolumeNameForVolumeMountPointW(void)
|
|||
ok(ret == TRUE, "GetVolumeNameForVolumeMountPointW failed\n");
|
||||
}
|
||||
|
||||
static void test_GetLogicalDriveStringsA(void)
|
||||
{
|
||||
UINT size, size2;
|
||||
char *buf, *ptr;
|
||||
|
||||
if(!pGetLogicalDriveStringsA) {
|
||||
win_skip("GetLogicalDriveStringsA not available\n");
|
||||
return;
|
||||
}
|
||||
|
||||
size = pGetLogicalDriveStringsA(0, NULL);
|
||||
ok(size%4 == 1, "size = %d\n", size);
|
||||
|
||||
buf = HeapAlloc(GetProcessHeap(), 0, size);
|
||||
|
||||
*buf = 0;
|
||||
size2 = pGetLogicalDriveStringsA(2, buf);
|
||||
ok(size2 == size, "size2 = %d\n", size2);
|
||||
ok(!*buf, "buf changed\n");
|
||||
|
||||
size2 = pGetLogicalDriveStringsA(size, buf);
|
||||
ok(size2 == size-1, "size2 = %d\n", size2);
|
||||
|
||||
for(ptr = buf; ptr < buf+size2; ptr += 4) {
|
||||
ok('A' <= *ptr && *ptr <= 'Z', "device name '%c' is not uppercase\n", *ptr);
|
||||
ok(ptr[1] == ':', "ptr[1] = %c, expected ':'\n", ptr[1]);
|
||||
ok(ptr[2] == '\\', "ptr[2] = %c expected '\\'\n", ptr[2]);
|
||||
ok(!ptr[3], "ptr[3] = %c expected nullbyte\n", ptr[3]);
|
||||
}
|
||||
ok(!*ptr, "buf[size2] is not nullbyte\n");
|
||||
|
||||
HeapFree(GetProcessHeap(), 0, buf);
|
||||
}
|
||||
|
||||
static void test_GetLogicalDriveStringsW(void)
|
||||
{
|
||||
UINT size, size2;
|
||||
WCHAR *buf, *ptr;
|
||||
|
||||
if(!pGetLogicalDriveStringsW) {
|
||||
win_skip("GetLogicalDriveStringsW not available\n");
|
||||
return;
|
||||
}
|
||||
|
||||
size = pGetLogicalDriveStringsW(0, NULL);
|
||||
ok(size%4 == 1, "size = %d\n", size);
|
||||
|
||||
buf = HeapAlloc(GetProcessHeap(), 0, size*sizeof(WCHAR));
|
||||
|
||||
*buf = 0;
|
||||
size2 = pGetLogicalDriveStringsW(2, buf);
|
||||
ok(size2 == size, "size2 = %d\n", size2);
|
||||
ok(!*buf, "buf changed\n");
|
||||
|
||||
size2 = pGetLogicalDriveStringsW(size, buf);
|
||||
ok(size2 == size-1, "size2 = %d\n", size2);
|
||||
|
||||
for(ptr = buf; ptr < buf+size2; ptr += 4) {
|
||||
ok('A' <= *ptr && *ptr <= 'Z', "device name '%c' is not uppercase\n", *ptr);
|
||||
ok(ptr[1] == ':', "ptr[1] = %c, expected ':'\n", ptr[1]);
|
||||
ok(ptr[2] == '\\', "ptr[2] = %c expected '\\'\n", ptr[2]);
|
||||
ok(!ptr[3], "ptr[3] = %c expected nullbyte\n", ptr[3]);
|
||||
}
|
||||
ok(!*ptr, "buf[size2] is not nullbyte\n");
|
||||
|
||||
HeapFree(GetProcessHeap(), 0, buf);
|
||||
}
|
||||
|
||||
START_TEST(volume)
|
||||
{
|
||||
hdll = GetModuleHandleA("kernel32.dll");
|
||||
|
@ -147,9 +217,13 @@ START_TEST(volume)
|
|||
pFindFirstVolumeA = (void *) GetProcAddress(hdll, "FindFirstVolumeA");
|
||||
pFindNextVolumeA = (void *) GetProcAddress(hdll, "FindNextVolumeA");
|
||||
pFindVolumeClose = (void *) GetProcAddress(hdll, "FindVolumeClose");
|
||||
pGetLogicalDriveStringsA = (void *) GetProcAddress(hdll, "GetLogicalDriveStringsA");
|
||||
pGetLogicalDriveStringsW = (void *) GetProcAddress(hdll, "GetLogicalDriveStringsW");
|
||||
|
||||
test_query_dos_deviceA();
|
||||
test_FindFirstVolume();
|
||||
test_GetVolumeNameForVolumeMountPointA();
|
||||
test_GetVolumeNameForVolumeMountPointW();
|
||||
test_GetLogicalDriveStringsA();
|
||||
test_GetLogicalDriveStringsW();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue