wine/dlls/kernel/tests drive.c

Alexandre Julliard julliard at wine.codeweavers.com
Tue Nov 15 10:53:09 CST 2005


ChangeSet ID:	21279
CVSROOT:	/opt/cvs-commit
Module name:	wine
Changes by:	julliard at winehq.org	2005/11/15 10:53:09

Modified files:
	dlls/kernel/tests: drive.c 

Log message:
	Detlef Riekenberg <wine.dev at web.de>
	Made test loadable on NT 3.51 again (GetDiskFreeSpaceExA not present).

Patch: http://cvs.winehq.org/patch.py?id=21279

Old revision  New revision  Changes     Path
 1.7           1.8           +8 -2       wine/dlls/kernel/tests/drive.c

Index: wine/dlls/kernel/tests/drive.c
diff -u -p wine/dlls/kernel/tests/drive.c:1.7 wine/dlls/kernel/tests/drive.c:1.8
--- wine/dlls/kernel/tests/drive.c:1.7	15 Nov 2005 16:53: 9 -0000
+++ wine/dlls/kernel/tests/drive.c	15 Nov 2005 16:53: 9 -0000
@@ -25,6 +25,8 @@
 #include "winbase.h"
 #include "winerror.h"
 
+static DWORD (WINAPI *pGetDiskFreeSpaceExA)(LPCSTR, PULARGE_INTEGER, PULARGE_INTEGER, PULARGE_INTEGER);
+
 static void test_GetDriveTypeA(void)
 {
     char drive[] = "?:\\";
@@ -123,12 +125,13 @@ static void test_GetDiskFreeSpaceA(void)
                     /* win3.0 thru winME */
                     ok( total_clusters <= 65535,
                             "total clusters is %ld > 65535\n", total_clusters);
-                else {
+                else if (pGetDiskFreeSpaceExA) {
                     /* NT, 2k, XP : GetDiskFreeSpace shoud be accurate */
                     ULARGE_INTEGER totEx, tot, d;
+
                     tot.QuadPart = sectors_per_cluster;
                     tot.QuadPart = (tot.QuadPart * bytes_per_sector) * total_clusters;
-                    ret = GetDiskFreeSpaceExA( drive, &d, &totEx, NULL);
+                    ret = pGetDiskFreeSpaceExA( drive, &d, &totEx, NULL);
                     ok( ret, "GetDiskFreeSpaceExA( %s ) failed. GetLastError=%ld\n", drive, GetLastError());
                     ok( bytes_per_sector == 0 || /* empty cd rom drive */
                         totEx.QuadPart <= tot.QuadPart,
@@ -194,6 +197,9 @@ static void test_GetDiskFreeSpaceW(void)
 
 START_TEST(drive)
 {
+    HANDLE hkernel32 = GetModuleHandleA("kernel32");
+    pGetDiskFreeSpaceExA = (void *) GetProcAddress(hkernel32, "GetDiskFreeSpaceExA");
+
     test_GetDriveTypeA();
     test_GetDriveTypeW();
 



More information about the wine-cvs mailing list