Paul Vriens : kernel32/tests: ReplaceFile[AW] doesn't exist on win9x.
Alexandre Julliard
julliard at winehq.org
Wed Feb 13 10:40:08 CST 2008
Module: wine
Branch: master
Commit: fc82d8c2218a168245ed9aeb500181c5e7e8dda1
URL: http://source.winehq.org/git/wine.git/?a=commit;h=fc82d8c2218a168245ed9aeb500181c5e7e8dda1
Author: Paul Vriens <paul.vriens.wine at gmail.com>
Date: Wed Feb 13 13:54:07 2008 +0100
kernel32/tests: ReplaceFile[AW] doesn't exist on win9x.
---
dlls/kernel32/tests/file.c | 50 ++++++++++++++++++++++++++++++-------------
1 files changed, 35 insertions(+), 15 deletions(-)
diff --git a/dlls/kernel32/tests/file.c b/dlls/kernel32/tests/file.c
index 3889585..f73f104 100644
--- a/dlls/kernel32/tests/file.c
+++ b/dlls/kernel32/tests/file.c
@@ -31,8 +31,9 @@
#include "winbase.h"
#include "winerror.h"
-static HINSTANCE hkernel32;
static HANDLE (WINAPI *pFindFirstFileExA)(LPCSTR,FINDEX_INFO_LEVELS,LPVOID,FINDEX_SEARCH_OPS,LPVOID,DWORD);
+static BOOL (WINAPI *pReplaceFileA)(LPCSTR, LPCSTR, LPCSTR, DWORD, LPVOID, LPVOID);
+static BOOL (WINAPI *pReplaceFileW)(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPVOID, LPVOID);
/* keep filename and filenameW the same */
static const char filename[] = "testfile.xxx";
@@ -49,6 +50,14 @@ static const char sillytext[] =
"1234 43 4kljf lf &%%%&&&&&& 34 4 34 3############# 33 3 3 3 # 3## 3"
"sdlkfjasdlkfj a dslkj adsklf \n \nasdklf askldfa sdlkf \nsadklf asdklf asdf ";
+static void InitFunctionPointers(void)
+{
+ HMODULE hkernel32 = GetModuleHandleA("kernel32");
+
+ pFindFirstFileExA=(void*)GetProcAddress(hkernel32, "FindFirstFileExA");
+ pReplaceFileA=(void*)GetProcAddress(hkernel32, "ReplaceFileA");
+ pReplaceFileW=(void*)GetProcAddress(hkernel32, "ReplaceFileW");
+}
static void test__hread( void )
{
@@ -1918,6 +1927,12 @@ static void test_ReplaceFileA(void)
DWORD ret;
BOOL retok;
+ if (!pReplaceFileA)
+ {
+ skip("ReplaceFileA() is missing\n");
+ return;
+ }
+
ret = GetTempPathA(MAX_PATH, temp_path);
ok(ret != 0, "GetTempPathA error %d\n", GetLastError());
ok(ret < MAX_PATH, "temp path should fit into MAX_PATH\n");
@@ -1983,7 +1998,7 @@ static void test_ReplaceFileA(void)
* TODO: flags are not implemented
*/
SetLastError(0xdeadbeef);
- ret = ReplaceFile(replaced, replacement, backup, 0, 0, 0);
+ ret = pReplaceFileA(replaced, replacement, backup, 0, 0, 0);
ok(ret, "ReplaceFileA: unexpected error %d\n", GetLastError());
/* make sure that the backup has the size of the old "replaced" file */
hBackupFile = CreateFileA(backup, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, 0);
@@ -2023,7 +2038,7 @@ static void test_ReplaceFileA(void)
* TODO: flags are not implemented
*/
SetLastError(0xdeadbeef);
- ret = ReplaceFileA(replaced, replacement, NULL, 0, 0, 0);
+ ret = pReplaceFileA(replaced, replacement, NULL, 0, 0, 0);
ok(ret, "ReplaceFileA: unexpected error %d\n", GetLastError());
/* re-create replacement file for pass w/ backup (backup-file not existing) */
@@ -2035,7 +2050,7 @@ static void test_ReplaceFileA(void)
* TODO: flags are not implemented
*/
SetLastError(0xdeadbeef);
- ret = ReplaceFileA(replaced, replacement, backup, 0, 0, 0);
+ ret = pReplaceFileA(replaced, replacement, backup, 0, 0, 0);
ok(ret, "ReplaceFileA: unexpected error %d\n", GetLastError());
/* re-create replacement file for pass w/ no permissions to "replaced" */
@@ -2047,7 +2062,7 @@ static void test_ReplaceFileA(void)
* TODO: flags are not implemented
*/
SetLastError(0xdeadbeef);
- ret = ReplaceFileA(replaced, replacement, backup, 0, 0, 0);
+ ret = pReplaceFileA(replaced, replacement, backup, 0, 0, 0);
ok(ret != ERROR_UNABLE_TO_REMOVE_REPLACED, "ReplaceFileA: unexpected error %d\n", GetLastError());
/* make sure that the replacement file still exists */
hReplacementFile = CreateFileA(replacement, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, 0);
@@ -2064,7 +2079,7 @@ static void test_ReplaceFileA(void)
* TODO: flags are not implemented
*/
SetLastError(0xdeadbeef);
- ret = ReplaceFileA(replaced, replacement, backup, 0, 0, 0);
+ ret = pReplaceFileA(replaced, replacement, backup, 0, 0, 0);
ok(!ret && GetLastError() == ERROR_FILE_NOT_FOUND,
"ReplaceFileA: unexpected error %d\n", GetLastError());
@@ -2072,7 +2087,7 @@ static void test_ReplaceFileA(void)
* TODO: flags are not implemented
*/
SetLastError(0xdeadbeef);
- ret = ReplaceFileA(replaced, replacement, NULL, 0, 0, 0);
+ ret = pReplaceFileA(replaced, replacement, NULL, 0, 0, 0);
ok(!ret && GetLastError() == ERROR_FILE_NOT_FOUND,
"ReplaceFileA: unexpected error %d\n", GetLastError());
@@ -2098,6 +2113,12 @@ static void test_ReplaceFileW(void)
WCHAR temp_path[MAX_PATH];
DWORD ret;
+ if (!pReplaceFileW)
+ {
+ skip("ReplaceFileW() is missing\n");
+ return;
+ }
+
ret = GetTempPathW(MAX_PATH, temp_path);
if (ret==0 && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
return;
@@ -2113,19 +2134,19 @@ static void test_ReplaceFileW(void)
ret = GetTempFileNameW(temp_path, prefix, 0, backup);
ok(ret != 0, "GetTempFileNameW error (backup) %d\n", GetLastError());
- ret = ReplaceFileW(replaced, replacement, backup, 0, 0, 0);
+ ret = pReplaceFileW(replaced, replacement, backup, 0, 0, 0);
ok(ret, "ReplaceFileW: error %d\n", GetLastError());
ret = GetTempFileNameW(temp_path, prefix, 0, replacement);
ok(ret != 0, "GetTempFileNameW error (replacement) %d\n", GetLastError());
- ret = ReplaceFileW(replaced, replacement, NULL, 0, 0, 0);
+ ret = pReplaceFileW(replaced, replacement, NULL, 0, 0, 0);
ok(ret, "ReplaceFileW: error %d\n", GetLastError());
ret = GetTempFileNameW(temp_path, prefix, 0, replacement);
ok(ret != 0, "GetTempFileNameW error (replacement) %d\n", GetLastError());
ret = DeleteFileW(backup);
ok(ret, "DeleteFileW: error (backup) %d\n", GetLastError());
- ret = ReplaceFileW(replaced, replacement, backup, 0, 0, 0);
+ ret = pReplaceFileW(replaced, replacement, backup, 0, 0, 0);
ok(ret, "ReplaceFileW: error %d\n", GetLastError());
ret = GetTempFileNameW(temp_path, prefix, 0, replacement);
@@ -2133,7 +2154,7 @@ static void test_ReplaceFileW(void)
ret = SetFileAttributesW(replaced, FILE_ATTRIBUTE_READONLY);
ok(ret, "SetFileAttributesW: error setting to read only %d\n", GetLastError());
- ret = ReplaceFileW(replaced, replacement, backup, 0, 0, 0);
+ ret = pReplaceFileW(replaced, replacement, backup, 0, 0, 0);
ok(ret != ERROR_UNABLE_TO_REMOVE_REPLACED,
"ReplaceFileW: unexpected error %d\n", GetLastError());
ret = SetFileAttributesW(replaced, FILE_ATTRIBUTE_NORMAL);
@@ -2141,10 +2162,10 @@ static void test_ReplaceFileW(void)
ret = DeleteFileW(replaced);
ok(ret, "DeleteFileW: error (replaced) %d\n", GetLastError());
- ret = ReplaceFileW(replaced, replacement, backup, 0, 0, 0);
+ ret = pReplaceFileW(replaced, replacement, backup, 0, 0, 0);
ok(!ret, "ReplaceFileW: error %d\n", GetLastError());
- ret = ReplaceFileW(replaced, replacement, NULL, 0, 0, 0);
+ ret = pReplaceFileW(replaced, replacement, NULL, 0, 0, 0);
ok(!ret && GetLastError() == ERROR_FILE_NOT_FOUND,
"ReplaceFileW: unexpected error %d\n", GetLastError());
@@ -2154,8 +2175,7 @@ static void test_ReplaceFileW(void)
START_TEST(file)
{
- hkernel32 = GetModuleHandleA("kernel32.dll");
- pFindFirstFileExA=(void*)GetProcAddress(hkernel32, "FindFirstFileExA");
+ InitFunctionPointers();
test__hread( );
test__hwrite( );
More information about the wine-cvs
mailing list