Paul Vriens : ntdll/tests: Prevent test failures on Windows.
Alexandre Julliard
julliard at winehq.org
Mon Apr 12 09:54:10 CDT 2010
Module: wine
Branch: master
Commit: 42094d259875956083f12e4fc2f82d9394974d8b
URL: http://source.winehq.org/git/wine.git/?a=commit;h=42094d259875956083f12e4fc2f82d9394974d8b
Author: Paul Vriens <Paul.Vriens.Wine at gmail.com>
Date: Mon Apr 12 15:10:24 2010 +0200
ntdll/tests: Prevent test failures on Windows.
---
dlls/ntdll/tests/file.c | 21 ++++++++++++++-------
1 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c
index 4e0512e..c483045 100644
--- a/dlls/ntdll/tests/file.c
+++ b/dlls/ntdll/tests/file.c
@@ -332,17 +332,20 @@ static void open_file_test(void)
nameW.Length = sizeof(info->FileId);
info->FileName[info->FileNameLength/sizeof(WCHAR)] = 0;
attr.RootDirectory = dir;
+ /* We skip 'open' files by not specifying FILE_SHARE_WRITE */
status = pNtOpenFile( &handle, GENERIC_READ, &attr, &io,
- FILE_SHARE_READ|FILE_SHARE_WRITE,
+ FILE_SHARE_READ,
FILE_OPEN_BY_FILE_ID |
((info->FileAttributes & FILE_ATTRIBUTE_DIRECTORY) ? FILE_DIRECTORY_FILE : 0) );
- ok( status == STATUS_SUCCESS || status == STATUS_ACCESS_DENIED || status == STATUS_NOT_IMPLEMENTED,
+ ok( status == STATUS_SUCCESS || status == STATUS_ACCESS_DENIED || status == STATUS_NOT_IMPLEMENTED || status == STATUS_SHARING_VIOLATION,
"open %s failed %x\n", wine_dbgstr_w(info->FileName), status );
if (status == STATUS_NOT_IMPLEMENTED)
{
win_skip( "FILE_OPEN_BY_FILE_ID not supported\n" );
break;
}
+ if (status == STATUS_SHARING_VIOLATION)
+ trace( "%s is currently open\n", wine_dbgstr_w(info->FileName) );
if (!status)
{
BYTE buf[sizeof(FILE_ALL_INFORMATION) + MAX_PATH * sizeof(WCHAR)];
@@ -351,11 +354,15 @@ static void open_file_test(void)
{
FILE_ALL_INFORMATION *fai = (FILE_ALL_INFORMATION *)buf;
- /* check that it's the same file */
- ok( info->EndOfFile.QuadPart == fai->StandardInformation.EndOfFile.QuadPart,
- "mismatched file size for %s\n", wine_dbgstr_w(info->FileName));
- ok( info->LastWriteTime.QuadPart == fai->BasicInformation.LastWriteTime.QuadPart,
- "mismatched write time for %s\n", wine_dbgstr_w(info->FileName));
+ /* check that it's the same file/directory */
+
+ /* don't check the size for directories */
+ if (!(info->FileAttributes & FILE_ATTRIBUTE_DIRECTORY))
+ ok( info->EndOfFile.QuadPart == fai->StandardInformation.EndOfFile.QuadPart,
+ "mismatched file size for %s\n", wine_dbgstr_w(info->FileName));
+
+ ok( info->CreationTime.QuadPart == fai->BasicInformation.CreationTime.QuadPart,
+ "mismatched creation time for %s\n", wine_dbgstr_w(info->FileName));
}
CloseHandle( handle );
More information about the wine-cvs
mailing list