msi: Fix a few file access discrepancies between platforms.

This commit is contained in:
James Hawkins 2008-09-08 21:53:09 -05:00 committed by Alexandre Julliard
parent 5c05e6c869
commit d11968cade
1 changed files with 51 additions and 47 deletions

View File

@ -7726,65 +7726,66 @@ struct access_res
{
BOOL gothandle;
DWORD lasterr;
BOOL ignore;
};
static const struct access_res create[16] =
{
{ TRUE, ERROR_SUCCESS },
{ TRUE, ERROR_SUCCESS },
{ TRUE, ERROR_SUCCESS },
{ TRUE, ERROR_SUCCESS },
{ FALSE, ERROR_SHARING_VIOLATION },
{ FALSE, ERROR_SHARING_VIOLATION },
{ FALSE, ERROR_SHARING_VIOLATION },
{ TRUE, ERROR_SUCCESS },
{ FALSE, ERROR_SHARING_VIOLATION },
{ FALSE, ERROR_SHARING_VIOLATION },
{ FALSE, ERROR_SHARING_VIOLATION },
{ TRUE, ERROR_SUCCESS },
{ FALSE, ERROR_SHARING_VIOLATION },
{ FALSE, ERROR_SHARING_VIOLATION },
{ FALSE, ERROR_SHARING_VIOLATION },
{ TRUE, ERROR_SUCCESS }
{ TRUE, ERROR_SUCCESS, TRUE },
{ TRUE, ERROR_SUCCESS, TRUE },
{ TRUE, ERROR_SUCCESS, FALSE },
{ TRUE, ERROR_SUCCESS, FALSE },
{ FALSE, ERROR_SHARING_VIOLATION, FALSE },
{ FALSE, ERROR_SHARING_VIOLATION, FALSE },
{ FALSE, ERROR_SHARING_VIOLATION, FALSE },
{ TRUE, ERROR_SUCCESS, FALSE },
{ FALSE, ERROR_SHARING_VIOLATION, FALSE },
{ FALSE, ERROR_SHARING_VIOLATION, FALSE },
{ FALSE, ERROR_SHARING_VIOLATION, FALSE },
{ TRUE, ERROR_SUCCESS, TRUE },
{ FALSE, ERROR_SHARING_VIOLATION, FALSE },
{ FALSE, ERROR_SHARING_VIOLATION, FALSE },
{ FALSE, ERROR_SHARING_VIOLATION, FALSE },
{ TRUE, ERROR_SUCCESS, TRUE }
};
static const struct access_res create_commit[16] =
{
{ TRUE, ERROR_SUCCESS },
{ TRUE, ERROR_SUCCESS },
{ TRUE, ERROR_SUCCESS },
{ TRUE, ERROR_SUCCESS },
{ FALSE, ERROR_SHARING_VIOLATION },
{ FALSE, ERROR_SHARING_VIOLATION },
{ FALSE, ERROR_SHARING_VIOLATION },
{ TRUE, ERROR_SUCCESS },
{ FALSE, ERROR_SHARING_VIOLATION },
{ FALSE, ERROR_SHARING_VIOLATION },
{ FALSE, ERROR_SHARING_VIOLATION },
{ TRUE, ERROR_SUCCESS },
{ FALSE, ERROR_SHARING_VIOLATION },
{ FALSE, ERROR_SHARING_VIOLATION },
{ FALSE, ERROR_SHARING_VIOLATION },
{ TRUE, ERROR_SUCCESS }
{ TRUE, ERROR_SUCCESS, TRUE },
{ TRUE, ERROR_SUCCESS, TRUE },
{ TRUE, ERROR_SUCCESS, FALSE },
{ TRUE, ERROR_SUCCESS, FALSE },
{ FALSE, ERROR_SHARING_VIOLATION, FALSE },
{ FALSE, ERROR_SHARING_VIOLATION, FALSE },
{ FALSE, ERROR_SHARING_VIOLATION, FALSE },
{ TRUE, ERROR_SUCCESS, FALSE },
{ FALSE, ERROR_SHARING_VIOLATION, FALSE },
{ FALSE, ERROR_SHARING_VIOLATION, FALSE },
{ FALSE, ERROR_SHARING_VIOLATION, FALSE },
{ TRUE, ERROR_SUCCESS, TRUE },
{ FALSE, ERROR_SHARING_VIOLATION, FALSE },
{ FALSE, ERROR_SHARING_VIOLATION, FALSE },
{ FALSE, ERROR_SHARING_VIOLATION, FALSE },
{ TRUE, ERROR_SUCCESS, TRUE }
};
static const struct access_res create_close[16] =
{
{ TRUE, ERROR_SUCCESS },
{ TRUE, ERROR_SUCCESS },
{ TRUE, ERROR_SUCCESS },
{ TRUE, ERROR_SUCCESS },
{ TRUE, ERROR_SUCCESS },
{ TRUE, ERROR_SUCCESS },
{ TRUE, ERROR_SUCCESS },
{ TRUE, ERROR_SUCCESS },
{ TRUE, ERROR_SUCCESS },
{ TRUE, ERROR_SUCCESS },
{ TRUE, ERROR_SUCCESS },
{ TRUE, ERROR_SUCCESS },
{ TRUE, ERROR_SUCCESS },
{ TRUE, ERROR_SUCCESS },
{ TRUE, ERROR_SUCCESS },
{ TRUE, ERROR_SUCCESS, FALSE },
{ TRUE, ERROR_SUCCESS, FALSE },
{ TRUE, ERROR_SUCCESS, FALSE },
{ TRUE, ERROR_SUCCESS, FALSE },
{ TRUE, ERROR_SUCCESS, FALSE },
{ TRUE, ERROR_SUCCESS, FALSE },
{ TRUE, ERROR_SUCCESS, FALSE },
{ TRUE, ERROR_SUCCESS, FALSE },
{ TRUE, ERROR_SUCCESS, FALSE },
{ TRUE, ERROR_SUCCESS, FALSE },
{ TRUE, ERROR_SUCCESS, FALSE },
{ TRUE, ERROR_SUCCESS, FALSE },
{ TRUE, ERROR_SUCCESS, FALSE },
{ TRUE, ERROR_SUCCESS, FALSE },
{ TRUE, ERROR_SUCCESS, FALSE },
{ TRUE, ERROR_SUCCESS }
};
@ -7804,6 +7805,9 @@ static void _test_file_access(LPCSTR file, const struct access_res *ares, DWORD
for (j = 0; j < 4; j++)
{
if (ares[idx].ignore)
continue;
if (j == 0) share = 0;
if (j == 1) share = FILE_SHARE_READ;
if (j == 2) share = FILE_SHARE_WRITE;