[PATCH v2 0/1] MR1983: kernel32/tests: Test GetFileType() with additional types of handles.
-- v2: kernel32/tests: Test GetFileType() with additional types of handles. https://gitlab.winehq.org/wine/wine/-/merge_requests/1983
From: Brendan Shanks <bshanks(a)codeweavers.com> --- dlls/kernel32/tests/file.c | 72 +++++++++++++++++++++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-) diff --git a/dlls/kernel32/tests/file.c b/dlls/kernel32/tests/file.c index b29e2c3dc4e..49a43a6493a 100644 --- a/dlls/kernel32/tests/file.c +++ b/dlls/kernel32/tests/file.c @@ -3142,7 +3142,9 @@ static void test_MapFile(void) static void test_GetFileType(void) { DWORD type, type2; - HANDLE h = CreateFileA( filename, GENERIC_READ|GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, 0 ); + HANDLE h, h2; + BOOL ret; + h = CreateFileA( filename, GENERIC_READ|GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, 0 ); ok( h != INVALID_HANDLE_VALUE, "open %s failed\n", filename ); type = GetFileType(h); ok( type == FILE_TYPE_DISK, "expected type disk got %ld\n", type ); @@ -3158,6 +3160,74 @@ static void test_GetFileType(void) type = GetFileType( (HANDLE)STD_OUTPUT_HANDLE ); type2 = GetFileType( h ); ok(type == type2, "expected type %ld for STD_OUTPUT_HANDLE got %ld\n", type2, type); + + ret = CreatePipe( &h, &h2, NULL, 0 ); + ok( ret, "CreatePipe failed\n" ); + type = GetFileType( h ); + ok( type == FILE_TYPE_PIPE, "expected type pipe got %ld\n", type ); + type = GetFileType( h2 ); + ok( type == FILE_TYPE_PIPE, "expected type pipe got %ld\n", type ); + CloseHandle( h2 ); + CloseHandle( h ); + + h = CreateNamedPipeW( L"\\\\.\\pipe\\wine_test", PIPE_ACCESS_DUPLEX, 0, 2, 32, 32, 0, NULL ); + ok( h != INVALID_HANDLE_VALUE, "CreateNamedPipe failed\n" ); + type = GetFileType( h ); + ok( type == FILE_TYPE_PIPE, "expected type pipe got %ld\n", type ); + CloseHandle( h ); + + h = CreateFileA( filename, GENERIC_READ|GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, 0 ); + ok( h != INVALID_HANDLE_VALUE, "open %s failed\n", filename ); + ok( WriteFile( h, "test", 4, NULL, NULL ), "WriteFile failed\n" ); + h2 = CreateFileMappingW( h, NULL, PAGE_READWRITE, 0, 0, NULL ); + ok( h2 != NULL, "CreateFileMapping failed\n" ); + SetLastError( 12345678 ); + type = GetFileType( h2 ); + todo_wine + ok( type == FILE_TYPE_UNKNOWN, "expected type unknown got %ld\n", type ); + todo_wine + ok( GetLastError() == ERROR_INVALID_HANDLE, "expected ERROR_INVALID_HANDLE got %lx\n", GetLastError() ); + CloseHandle( h2 ); + CloseHandle( h ); + DeleteFileA( filename ); + + h = CreateFileMappingW( INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, 0x1000, NULL ); + ok( h != NULL, "CreateFileMapping failed\n" ); + SetLastError( 12345678 ); + type = GetFileType( h ); + todo_wine + ok( type == FILE_TYPE_UNKNOWN, "expected type unknown got %ld\n", type ); + todo_wine + ok( GetLastError() == ERROR_INVALID_HANDLE, "expected ERROR_INVALID_HANDLE got %lx\n", GetLastError() ); + CloseHandle( h ); + + h = CreateMailslotW( L"\\\\.\\mailslot\\wine_test", 0, 0, NULL ); + ok( h != INVALID_HANDLE_VALUE, "CreateMailslot failed\n" ); + SetLastError( 12345678 ); + type = GetFileType( h ); + todo_wine + ok( type == FILE_TYPE_UNKNOWN, "expected type unknown got %ld\n", type ); + todo_wine + ok( GetLastError() == NO_ERROR, "expected ERROR_NO_ERROR got %lx\n", GetLastError() ); + CloseHandle( h ); + + SetLastError( 12345678 ); + type = GetFileType( GetCurrentProcess() ); + ok( type == FILE_TYPE_UNKNOWN, "expected type unknown got %ld\n", type ); + ok( GetLastError() == ERROR_INVALID_HANDLE, "expected ERROR_INVALID_HANDLE got %lx\n", GetLastError() ); + + SetLastError( 12345678 ); + type = GetFileType( GetCurrentThread() ); + ok( type == FILE_TYPE_UNKNOWN, "expected type unknown got %ld\n", type ); + ok( GetLastError() == ERROR_INVALID_HANDLE, "expected ERROR_INVALID_HANDLE got %lx\n", GetLastError() ); + + h = CreateMutexW( NULL, TRUE, NULL ); + ok( h != NULL, "CreateMutex failed\n" ); + SetLastError( 12345678 ); + type = GetFileType( h ); + ok( type == FILE_TYPE_UNKNOWN, "expected type unknown got %ld\n", type ); + ok( GetLastError() == ERROR_INVALID_HANDLE, "expected ERROR_INVALID_HANDLE got %lx\n", GetLastError() ); + CloseHandle( h ); } static int completion_count; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/1983
Hi, It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated. The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=128515 Your paranoid android. === w7u_2qxl (32 bit report) === kernel32: 05dc:file: unhandled exception c0000005 at 757F75C3 === w7u_adm (32 bit report) === kernel32: 0924:file: unhandled exception c0000005 at 759275C3 === w7u_el (32 bit report) === kernel32: 0a70:file: unhandled exception c0000005 at 750E75C3
participants (3)
-
Brendan Shanks -
Brendan Shanks (@bshanks) -
Marvin