Jacek Caban : ntdll/tests: Added FSCTL_PIPE_PEEK tests.

Alexandre Julliard julliard at winehq.org
Wed May 10 17:23:18 CDT 2017


Module: wine
Branch: master
Commit: 4370073bbfea01bad9a600046903a4fa6ed7a525
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=4370073bbfea01bad9a600046903a4fa6ed7a525

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed May 10 18:55:41 2017 +0200

ntdll/tests: Added FSCTL_PIPE_PEEK tests.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ntdll/tests/pipe.c | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/dlls/ntdll/tests/pipe.c b/dlls/ntdll/tests/pipe.c
index e242cb4..c0a785b 100644
--- a/dlls/ntdll/tests/pipe.c
+++ b/dlls/ntdll/tests/pipe.c
@@ -724,6 +724,31 @@ static void WINAPI apc( void *arg, IO_STATUS_BLOCK *iosb, ULONG reserved )
     ok( !reserved, "reserved is not 0: %x\n", reserved );
 }
 
+static void test_peek(HANDLE pipe)
+{
+    FILE_PIPE_PEEK_BUFFER buf;
+    IO_STATUS_BLOCK iosb;
+    HANDLE event = CreateEventA( NULL, TRUE, FALSE, NULL );
+    NTSTATUS status;
+
+    memset(&iosb, 0x55, sizeof(iosb));
+    status = NtFsControlFile(pipe, NULL, NULL, NULL, &iosb, FSCTL_PIPE_PEEK, NULL, 0, &buf, sizeof(buf));
+    ok(!status || status == STATUS_PENDING, "NtFsControlFile failed: %x\n", status);
+    ok(!iosb.Status, "iosb.Status = %x\n", iosb.Status);
+    ok(buf.ReadDataAvailable == 1, "ReadDataAvailable = %u\n", buf.ReadDataAvailable);
+
+    ResetEvent(event);
+    memset(&iosb, 0x55, sizeof(iosb));
+    status = NtFsControlFile(pipe, event, NULL, NULL, &iosb, FSCTL_PIPE_PEEK, NULL, 0, &buf, sizeof(buf));
+    ok(!status || status == STATUS_PENDING, "NtFsControlFile failed: %x\n", status);
+    ok(buf.ReadDataAvailable == 1, "ReadDataAvailable = %u\n", buf.ReadDataAvailable);
+    ok(!iosb.Status, "iosb.Status = %x\n", iosb.Status);
+    todo_wine
+    ok(is_signaled(event), "event is not signaled\n");
+
+    CloseHandle(event);
+}
+
 #define PIPENAME "\\\\.\\pipe\\ntdll_tests_pipe.c"
 
 static BOOL create_pipe_pair( HANDLE *read, HANDLE *write, ULONG flags, ULONG type, ULONG size )
@@ -829,6 +854,9 @@ static void read_pipe_test(ULONG pipe_flags, ULONG pipe_type)
     ResetEvent( event );
     ret = WriteFile( write, buffer, 1, &written, NULL );
     ok(ret && written == 1, "WriteFile error %d\n", GetLastError());
+
+    test_peek(read);
+
     status = NtReadFile( read, event, apc, &apc_count, &iosb, buffer, 1, NULL, NULL );
     ok( status == STATUS_SUCCESS, "wrong status %x\n", status );
     ok( U(iosb).Status == 0, "wrong status %x\n", U(iosb).Status );




More information about the wine-cvs mailing list