Author: pschweitzer
Date: Sun Apr 19 19:36:42 2015
New Revision: 67306
URL:
http://svn.reactos.org/svn/reactos?rev=67306&view=rev
Log:
[KERNEL32_APITEST]
Complete a bit more the PrivMoveFileIdentityW tests
Modified:
trunk/rostests/apitests/kernel32/PrivMoveFileIdentityW.c
Modified: trunk/rostests/apitests/kernel32/PrivMoveFileIdentityW.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/kernel32/PrivMov…
==============================================================================
--- trunk/rostests/apitests/kernel32/PrivMoveFileIdentityW.c [iso-8859-1] (original)
+++ trunk/rostests/apitests/kernel32/PrivMoveFileIdentityW.c [iso-8859-1] Sun Apr 19
19:36:42 2015
@@ -13,6 +13,8 @@
#include <ndk/rtltypes.h>
static const WCHAR FileName[] = L"TestFile.xxx";
+static const CHAR FileNameA[] = "TestFile.xxx";
+static const WCHAR FileName2[] = L"TestFile2.xxx";
static BOOL (WINAPI * pPrivMoveFileIdentityW)(LPCWSTR, LPCWSTR, DWORD);
@@ -59,10 +61,11 @@
FILE_STANDARD_INFORMATION FileStandardInfo;
LARGE_INTEGER CreationTime, EndOfFile;
HANDLE hDest;
- NTSTATUS Status;
WCHAR Self[MAX_PATH];
+ OFSTRUCT ReOpen;
DeleteFileW(FileName);
+ DeleteFileW(FileName2);
if (GetModuleFileNameW(NULL, Self, MAX_PATH) == 0)
{
@@ -96,8 +99,14 @@
ok(QueryFileInfo(FileName, &FileBasicInfo, &FileStandardInfo) == TRUE,
"QueryFileInfo returned FALSE\n");
ok(FileBasicInfo.CreationTime.QuadPart != CreationTime.QuadPart, "Equal creation
times\n");
ok(FileStandardInfo.EndOfFile.QuadPart == 0LL, "File wasn't created empty:
%I64d\n", FileStandardInfo.EndOfFile.QuadPart);
- Status = (NTSTATUS)pPrivMoveFileIdentityW(Self, FileName, 0);
- ok(Status == STATUS_SUCCESS, "PrivMoveFileIdentityW failed with %lx\n",
Status);
+ SetLastError(0xdeadbeef);
+ ok(pPrivMoveFileIdentityW(Self, FileName, 0) == FALSE, "PrivMoveFileIdentityW
succeed\n");
+ ok(GetLastError() == ERROR_SHARING_VIOLATION, "Last error: %lx\n",
GetLastError());
+ ok(QueryFileInfo(FileName, &FileBasicInfo, &FileStandardInfo) == TRUE,
"QueryFileInfo returned FALSE\n");
+ ok(FileBasicInfo.CreationTime.QuadPart != CreationTime.QuadPart, "Equal creation
times\n");
+ ok(FileStandardInfo.EndOfFile.QuadPart == 0LL, "File wasn't created empty:
%I64d\n", FileStandardInfo.EndOfFile.QuadPart);
+ SetLastError(0xdeadbeef);
+ ok(pPrivMoveFileIdentityW(Self, FileName, 2) == TRUE, "PrivMoveFileIdentityW
failed with %lx\n", GetLastError());
ok(QueryFileInfo(FileName, &FileBasicInfo, &FileStandardInfo) == TRUE,
"QueryFileInfo returned FALSE\n");
ok(FileBasicInfo.CreationTime.QuadPart == CreationTime.QuadPart, "Creation time
didn't change\n");
ok(FileStandardInfo.EndOfFile.QuadPart == 0LL, "File not empty anymore:
%I64d\n", FileStandardInfo.EndOfFile.QuadPart);
@@ -105,6 +114,27 @@
ok(FileBasicInfo.CreationTime.QuadPart == CreationTime.QuadPart, "Creation time
changed\n");
ok(FileStandardInfo.EndOfFile.QuadPart == EndOfFile.QuadPart, "File size
changed: %I64d\n", FileStandardInfo.EndOfFile.QuadPart);
+ hDest = CreateFileW(FileName2, GENERIC_WRITE | SYNCHRONIZE,
+ FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
+ CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL |
FILE_SYNCHRONOUS_IO_NONALERT,
+ NULL);
+ if (hDest == INVALID_HANDLE_VALUE)
+ {
+ win_skip("Failed creating new\n");
+ return;
+ }
+
+ CloseHandle(hDest);
+
+ ok(QueryFileInfo(FileName2, &FileBasicInfo, &FileStandardInfo) == TRUE,
"QueryFileInfo returned FALSE\n");
+ ok(FileBasicInfo.CreationTime.QuadPart != CreationTime.QuadPart, "Equal creation
times\n");
+ SetLastError(0xdeadbeef);
+ ok(pPrivMoveFileIdentityW(FileName, FileName2, 3) == TRUE,
"PrivMoveFileIdentityW failed with %lx\n", GetLastError());
+ ok(QueryFileInfo(FileName2, &FileBasicInfo, &FileStandardInfo) == TRUE,
"QueryFileInfo returned FALSE\n");
+ ok(FileBasicInfo.CreationTime.QuadPart == CreationTime.QuadPart, "Creation time
didn't change\n");
+ ok(OpenFile(FileNameA, &ReOpen, OF_EXIST) == HFILE_ERROR, "Source file still
exists\n");
+
+ DeleteFileW(FileName2);
DeleteFileW(FileName);
}