Module: wine Branch: master Commit: 89bdd639df5064c0ffe7a350e8027c19996b9904 URL: http://source.winehq.org/git/wine.git/?a=commit;h=89bdd639df5064c0ffe7a350e8...
Author: Francois Gouget fgouget@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());