ntdll/tests: Add a FILE_APPEND_DATA test.
This commit is contained in:
parent
e86353fd30
commit
eb11dee4fc
|
@ -816,6 +816,46 @@ static void read_file_test(void)
|
||||||
CloseHandle( event );
|
CloseHandle( event );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void append_file_test(void)
|
||||||
|
{
|
||||||
|
const char text[] = "foobar";
|
||||||
|
HANDLE handle;
|
||||||
|
NTSTATUS status;
|
||||||
|
IO_STATUS_BLOCK iosb;
|
||||||
|
DWORD written;
|
||||||
|
char buffer[128];
|
||||||
|
|
||||||
|
GetTempFileNameA( ".", "foo", 0, buffer );
|
||||||
|
/* It is possible to open a file with only FILE_APPEND_DATA access flags.
|
||||||
|
It matches the O_WRONLY|O_APPEND open() posix behavior */
|
||||||
|
handle = CreateFileA(buffer, FILE_APPEND_DATA, 0, NULL, CREATE_ALWAYS,
|
||||||
|
FILE_FLAG_DELETE_ON_CLOSE, 0);
|
||||||
|
ok( handle != INVALID_HANDLE_VALUE, "Failed to create a temp file in FILE_APPEND_DATA mode.\n" );
|
||||||
|
if(handle == INVALID_HANDLE_VALUE)
|
||||||
|
{
|
||||||
|
skip("Couldn't create a temporary file, skipping FILE_APPEND_DATA test\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
iosb.Status = STATUS_PENDING;
|
||||||
|
iosb.Information = 0;
|
||||||
|
|
||||||
|
status = NtWriteFile(handle, NULL, NULL, NULL, &iosb,
|
||||||
|
text, sizeof(text), NULL, NULL);
|
||||||
|
|
||||||
|
if (status == STATUS_PENDING)
|
||||||
|
{
|
||||||
|
WaitForSingleObject( handle, INFINITE );
|
||||||
|
status = iosb.Status;
|
||||||
|
}
|
||||||
|
written = iosb.Information;
|
||||||
|
|
||||||
|
todo_wine
|
||||||
|
ok(status == STATUS_SUCCESS && written == sizeof(text), "FILE_APPEND_DATA NtWriteFile failed\n");
|
||||||
|
|
||||||
|
CloseHandle(handle);
|
||||||
|
}
|
||||||
|
|
||||||
static void nt_mailslot_test(void)
|
static void nt_mailslot_test(void)
|
||||||
{
|
{
|
||||||
HANDLE hslot;
|
HANDLE hslot;
|
||||||
|
@ -1555,6 +1595,7 @@ START_TEST(file)
|
||||||
open_file_test();
|
open_file_test();
|
||||||
delete_file_test();
|
delete_file_test();
|
||||||
read_file_test();
|
read_file_test();
|
||||||
|
append_file_test();
|
||||||
nt_mailslot_test();
|
nt_mailslot_test();
|
||||||
test_iocompletion();
|
test_iocompletion();
|
||||||
test_file_basic_information();
|
test_file_basic_information();
|
||||||
|
|
Loading…
Reference in New Issue