Module: wine Branch: master Commit: d11968cade91e05b294bb84ea6a01fee6dc009e7 URL: http://source.winehq.org/git/wine.git/?a=commit;h=d11968cade91e05b294bb84ea6...
Author: James Hawkins jhawkins@codeweavers.com Date: Mon Sep 8 21:53:09 2008 -0500
msi: Fix a few file access discrepancies between platforms.
---
dlls/msi/tests/package.c | 98 ++++++++++++++++++++++++---------------------- 1 files changed, 51 insertions(+), 47 deletions(-)
diff --git a/dlls/msi/tests/package.c b/dlls/msi/tests/package.c index 3775cbd..2ef86d9 100644 --- a/dlls/msi/tests/package.c +++ b/dlls/msi/tests/package.c @@ -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;