From: Brendan Shanks bshanks@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;
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