Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-fonts
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Aleksandr Isakov
wine-fonts
Commits
efec1010
Commit
efec1010
authored
May 15, 2015
by
Qian Hong
Committed by
Vitaly Lipatov
Jul 30, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ntdll/tests: Added tests for open behaviour on readonly files.
parent
5b2907cc
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
78 additions
and
0 deletions
+78
-0
file.c
dlls/ntdll/tests/file.c
+78
-0
No files found.
dlls/ntdll/tests/file.c
View file @
efec1010
...
...
@@ -4259,6 +4259,83 @@ static void test_NtCreateFile(void)
RemoveDirectoryW
(
path
);
}
static
void
test_readonly
(
void
)
{
static
const
WCHAR
fooW
[]
=
{
'f'
,
'o'
,
'o'
,
0
};
NTSTATUS
status
;
HANDLE
handle
;
WCHAR
path
[
MAX_PATH
];
OBJECT_ATTRIBUTES
attr
;
IO_STATUS_BLOCK
io
;
UNICODE_STRING
nameW
;
GetTempPathW
(
MAX_PATH
,
path
);
GetTempFileNameW
(
path
,
fooW
,
0
,
path
);
DeleteFileW
(
path
);
pRtlDosPathNameToNtPathName_U
(
path
,
&
nameW
,
NULL
,
NULL
);
attr
.
Length
=
sizeof
(
attr
);
attr
.
RootDirectory
=
NULL
;
attr
.
ObjectName
=
&
nameW
;
attr
.
Attributes
=
OBJ_CASE_INSENSITIVE
;
attr
.
SecurityDescriptor
=
NULL
;
attr
.
SecurityQualityOfService
=
NULL
;
status
=
pNtCreateFile
(
&
handle
,
GENERIC_READ
,
&
attr
,
&
io
,
NULL
,
FILE_ATTRIBUTE_READONLY
,
FILE_SHARE_READ
|
FILE_SHARE_WRITE
|
FILE_SHARE_DELETE
,
FILE_CREATE
,
0
,
NULL
,
0
);
ok
(
status
==
STATUS_SUCCESS
,
"got %#x
\n
"
,
status
);
CloseHandle
(
handle
);
status
=
pNtOpenFile
(
&
handle
,
GENERIC_WRITE
,
&
attr
,
&
io
,
FILE_SHARE_READ
|
FILE_SHARE_WRITE
|
FILE_SHARE_DELETE
,
FILE_OPEN_FOR_BACKUP_INTENT
);
ok
(
status
==
STATUS_ACCESS_DENIED
,
"got %#x
\n
"
,
status
);
CloseHandle
(
handle
);
status
=
pNtOpenFile
(
&
handle
,
GENERIC_READ
,
&
attr
,
&
io
,
FILE_SHARE_READ
|
FILE_SHARE_WRITE
|
FILE_SHARE_DELETE
,
FILE_OPEN_FOR_BACKUP_INTENT
);
ok
(
status
==
STATUS_SUCCESS
,
"got %#x
\n
"
,
status
);
CloseHandle
(
handle
);
status
=
pNtOpenFile
(
&
handle
,
FILE_READ_ATTRIBUTES
,
&
attr
,
&
io
,
FILE_SHARE_READ
|
FILE_SHARE_WRITE
|
FILE_SHARE_DELETE
,
FILE_OPEN_FOR_BACKUP_INTENT
);
ok
(
status
==
STATUS_SUCCESS
,
"got %#x
\n
"
,
status
);
CloseHandle
(
handle
);
status
=
pNtOpenFile
(
&
handle
,
FILE_WRITE_ATTRIBUTES
,
&
attr
,
&
io
,
FILE_SHARE_READ
|
FILE_SHARE_WRITE
|
FILE_SHARE_DELETE
,
FILE_OPEN_FOR_BACKUP_INTENT
);
todo_wine
ok
(
status
==
STATUS_SUCCESS
,
"got %#x
\n
"
,
status
);
CloseHandle
(
handle
);
status
=
pNtOpenFile
(
&
handle
,
DELETE
,
&
attr
,
&
io
,
FILE_SHARE_READ
|
FILE_SHARE_WRITE
|
FILE_SHARE_DELETE
,
FILE_OPEN_FOR_BACKUP_INTENT
);
ok
(
status
==
STATUS_SUCCESS
,
"got %#x
\n
"
,
status
);
CloseHandle
(
handle
);
status
=
pNtOpenFile
(
&
handle
,
READ_CONTROL
,
&
attr
,
&
io
,
FILE_SHARE_READ
|
FILE_SHARE_WRITE
|
FILE_SHARE_DELETE
,
FILE_OPEN_FOR_BACKUP_INTENT
);
ok
(
status
==
STATUS_SUCCESS
,
"got %#x
\n
"
,
status
);
CloseHandle
(
handle
);
status
=
pNtOpenFile
(
&
handle
,
WRITE_DAC
,
&
attr
,
&
io
,
FILE_SHARE_READ
|
FILE_SHARE_WRITE
|
FILE_SHARE_DELETE
,
FILE_OPEN_FOR_BACKUP_INTENT
);
ok
(
status
==
STATUS_SUCCESS
,
"got %#x
\n
"
,
status
);
CloseHandle
(
handle
);
status
=
pNtOpenFile
(
&
handle
,
WRITE_OWNER
,
&
attr
,
&
io
,
FILE_SHARE_READ
|
FILE_SHARE_WRITE
|
FILE_SHARE_DELETE
,
FILE_OPEN_FOR_BACKUP_INTENT
);
ok
(
status
==
STATUS_SUCCESS
,
"got %#x
\n
"
,
status
);
CloseHandle
(
handle
);
status
=
pNtOpenFile
(
&
handle
,
SYNCHRONIZE
,
&
attr
,
&
io
,
FILE_SHARE_READ
|
FILE_SHARE_WRITE
|
FILE_SHARE_DELETE
,
FILE_OPEN_FOR_BACKUP_INTENT
);
ok
(
status
==
STATUS_SUCCESS
,
"got %#x
\n
"
,
status
);
CloseHandle
(
handle
);
pRtlFreeUnicodeString
(
&
nameW
);
SetFileAttributesW
(
path
,
FILE_ATTRIBUTE_ARCHIVE
);
DeleteFileW
(
path
);
}
static
void
test_read_write
(
void
)
{
static
const
char
contents
[
14
]
=
"1234567890abcd"
;
...
...
@@ -5838,6 +5915,7 @@ START_TEST(file)
test_read_write
();
test_NtCreateFile
();
test_readonly
();
create_file_test
();
open_file_test
();
delete_file_test
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment