[PATCH 0/1] MR1983: kernel32/tests: Test GetFileType() with additional types of handles.
From: Brendan Shanks <bshanks(a)codeweavers.com> --- dlls/kernel32/tests/file.c | 79 +++++++++++++++++++++++++++++++++++++- 1 file changed, 78 insertions(+), 1 deletion(-) diff --git a/dlls/kernel32/tests/file.c b/dlls/kernel32/tests/file.c index b29e2c3dc4e..9c54468d943 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,81 @@ 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 ); + + type = GetFileType( (HANDLE)STD_INPUT_HANDLE ); + ok( type == FILE_TYPE_CHAR, "expected type char got %ld\n", type ); + type = GetFileType( (HANDLE)STD_OUTPUT_HANDLE ); + ok( type == FILE_TYPE_CHAR, "expected type char got %ld\n", type ); + type = GetFileType( (HANDLE)STD_ERROR_HANDLE ); + ok( type == FILE_TYPE_CHAR, "expected type char got %ld\n", type ); + + 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=128514 Your paranoid android. === w7u_2qxl (32 bit report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 05cc:file: unhandled exception c0000005 at 757275C3 === w7u_adm (32 bit report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 0c0c:file: unhandled exception c0000005 at 759275C3 === w7u_el (32 bit report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 0a5c:file: unhandled exception c0000005 at 750E75C3 === w8 (32 bit report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 === w8adm (32 bit report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 === w864 (32 bit report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 === w1064v1507 (32 bit report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 === w1064v1809 (32 bit report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 === w1064_tsign (32 bit report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 === w10pro64 (32 bit report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 === w864 (64 bit report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 === w1064v1507 (64 bit report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 === w1064v1809 (64 bit report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 === w1064_2qxl (64 bit report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 === w1064_adm (64 bit report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 === w1064_tsign (64 bit report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 === w10pro64 (64 bit report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 === w10pro64_en_AE_u8 (64 bit report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 === w10pro64_ar (64 bit report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 === w10pro64_ja (64 bit report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 === w10pro64_zh_CN (64 bit report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 === debian11 (32 bit report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 === debian11 (32 bit ar:MA report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 === debian11 (32 bit de report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 === debian11 (32 bit fr report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 === debian11 (32 bit he:IL report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 === debian11 (32 bit hi:IN report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 === debian11 (32 bit ja:JP report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 === debian11 (32 bit zh:CN report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 === debian11b (32 bit WoW report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1 === debian11b (64 bit WoW report) === kernel32: file.c:3182: Test failed: expected type char got 1 file.c:3184: Test failed: expected type char got 1
participants (3)
-
Brendan Shanks -
Brendan Shanks (@bshanks) -
Marvin