Francois Gouget : wininet/tests: FtpCommandA() is not available on Win9x. So load it dynamically and skip some tests.

Alexandre Julliard julliard at winehq.org
Mon Mar 3 06:21:36 CST 2008


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

Author: Francois Gouget <fgouget at free.fr>
Date:   Sat Mar  1 21:13:55 2008 +0100

wininet/tests: FtpCommandA() is not available on Win9x. So load it dynamically and skip some tests.

---

 dlls/wininet/tests/ftp.c |   24 ++++++++++++++++++++++--
 1 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/dlls/wininet/tests/ftp.c b/dlls/wininet/tests/ftp.c
index 985b23b..9832fce 100644
--- a/dlls/wininet/tests/ftp.c
+++ b/dlls/wininet/tests/ftp.c
@@ -42,6 +42,10 @@
 
 #include "wine/test.h"
 
+
+static BOOL (WINAPI *pFtpCommandA)(HINTERNET,BOOL,DWORD,LPCSTR,DWORD_PTR,HINTERNET*);
+
+
 static void test_getfile_no_open(void)
 {
     BOOL      bRet;
@@ -680,10 +684,16 @@ static void test_command(HINTERNET hFtp, HINTERNET hConnect)
         { TRUE,  ERROR_SUCCESS,                 "PWD\r\n" }
     };
 
+    if (!pFtpCommandA)
+    {
+        skip("FtpCommandA() is not available. Skipping the Ftp command tests\n");
+        return;
+    }
+
     for (i = 0; i < sizeof(command_test) / sizeof(command_test[0]); i++)
     {
         SetLastError(0xdeadbeef);
-        ret = FtpCommandA(hFtp, FALSE, FTP_TRANSFER_TYPE_ASCII, command_test[i].cmd, 0, NULL);
+        ret = pFtpCommandA(hFtp, FALSE, FTP_TRANSFER_TYPE_ASCII, command_test[i].cmd, 0, NULL);
         error = GetLastError();
 
         ok(ret == command_test[i].ret, "%d: expected FtpCommandA to %s\n", i, command_test[i].ret ? "succeed" : "fail");
@@ -697,8 +707,14 @@ static void test_get_current_dir(HINTERNET hFtp, HINTERNET hConnect)
     DWORD   dwCurrentDirectoryLen = MAX_PATH;
     CHAR    lpszCurrentDirectory[MAX_PATH];
 
+    if (!pFtpCommandA)
+    {
+        skip("FtpCommandA() is not available. Skipping the Ftp get_current_dir tests\n");
+        return;
+    }
+
     /* change directories to get a more interesting pwd */
-    bRet = FtpCommandA(hFtp, FALSE, FTP_TRANSFER_TYPE_ASCII, "CWD pub/", 0, NULL);
+    bRet = pFtpCommandA(hFtp, FALSE, FTP_TRANSFER_TYPE_ASCII, "CWD pub/", 0, NULL);
     if(bRet == FALSE)
     {
         skip("Failed to change directories in test_get_current_dir(HINTERNET hFtp).\n");
@@ -771,8 +787,12 @@ static void test_get_current_dir(HINTERNET hFtp, HINTERNET hConnect)
 
 START_TEST(ftp)
 {
+    HMODULE hWininet;
     HANDLE hInternet, hFtp, hHttp;
 
+    hWininet = GetModuleHandleA("wininet.dll");
+    pFtpCommandA = (void*)GetProcAddress(hWininet, "FtpCommandA");
+
     SetLastError(0xdeadbeef);
     hInternet = InternetOpen("winetest", 0, NULL, NULL, 0);
     ok(hInternet != NULL, "InternetOpen failed: %u\n", GetLastError());




More information about the wine-cvs mailing list