-- v3: kernel32/tests: Add tests for GetConsoleOriginalTitleA/W() kernelbase: Add stubs for GetConsoleOriginalTitleA/W()
From: Hugh McMaster hugh.mcmaster@outlook.com
--- dlls/kernel32/kernel32.spec | 4 ++-- dlls/kernelbase/console.c | 22 ++++++++++++++++++++++ dlls/kernelbase/kernelbase.spec | 2 ++ 3 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec index 7c5fb8ed74f..a4bba1c6848 100644 --- a/dlls/kernel32/kernel32.spec +++ b/dlls/kernel32/kernel32.spec @@ -610,8 +610,8 @@ @ stdcall GetConsoleKeyboardLayoutNameW(ptr) @ stdcall -import GetConsoleMode(long ptr) @ stub GetConsoleNlsMode -# @ stub GetConsoleOriginalTitleA -# @ stub GetConsoleOriginalTitleW +@ stdcall -import GetConsoleOriginalTitleA(ptr long) +@ stdcall -import GetConsoleOriginalTitleW(ptr long) @ stdcall -import GetConsoleOutputCP() @ stdcall -import GetConsoleProcessList(ptr long) @ stdcall -import GetConsoleScreenBufferInfo(long ptr) diff --git a/dlls/kernelbase/console.c b/dlls/kernelbase/console.c index 434399b073a..e3b0ebead9e 100644 --- a/dlls/kernelbase/console.c +++ b/dlls/kernelbase/console.c @@ -886,6 +886,28 @@ BOOL WINAPI DECLSPEC_HOTPATCH GetConsoleMode( HANDLE handle, DWORD *mode ) }
+/*********************************************************************** + * GetConsoleOriginalTitleA (kernelbase.@) + */ +DWORD WINAPI DECLSPEC_HOTPATCH GetConsoleOriginalTitleA( LPSTR title, DWORD size ) +{ + FIXME( ": (%p, %lu) stub!\n", title, size ); + SetLastError( ERROR_CALL_NOT_IMPLEMENTED ); + return 0; +} + + +/*********************************************************************** + * GetConsoleOriginalTitleW (kernelbase.@) + */ +DWORD WINAPI DECLSPEC_HOTPATCH GetConsoleOriginalTitleW( LPWSTR title, DWORD size ) +{ + FIXME( ": (%p, %lu) stub!\n", title, size ); + SetLastError( ERROR_CALL_NOT_IMPLEMENTED ); + return 0; +} + + /*********************************************************************** * GetConsoleOutputCP (kernelbase.@) */ diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec index c9b8649c800..cbce448d3e9 100644 --- a/dlls/kernelbase/kernelbase.spec +++ b/dlls/kernelbase/kernelbase.spec @@ -466,6 +466,8 @@ @ stdcall GetConsoleInputExeNameA(long ptr) @ stdcall GetConsoleInputExeNameW(long ptr) @ stdcall GetConsoleMode(long ptr) +@ stdcall GetConsoleOriginalTitleA(ptr long) +@ stdcall GetConsoleOriginalTitleW(ptr long) @ stdcall GetConsoleOutputCP() @ stdcall GetConsoleProcessList(ptr long) @ stdcall GetConsoleScreenBufferInfo(long ptr)
From: Hugh McMaster hugh.mcmaster@outlook.com
--- dlls/kernel32/tests/console.c | 79 +++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+)
diff --git a/dlls/kernel32/tests/console.c b/dlls/kernel32/tests/console.c index c145aa4cb59..c793f6f5409 100644 --- a/dlls/kernel32/tests/console.c +++ b/dlls/kernel32/tests/console.c @@ -4230,6 +4230,77 @@ static void test_SetConsoleScreenBufferInfoEx(HANDLE std_output) CloseHandle(std_input); }
+static void test_GetConsoleOriginalTitleA(void) +{ + char buf[64]; + DWORD ret; + char title[] = "Original Console Title"; + + ret = GetConsoleOriginalTitleA(NULL, 0); + ok(!ret, "Unexpected string length; error %lu\n", GetLastError()); + + ret = GetConsoleOriginalTitleA(buf, 0); + ok(!ret, "Unexpected string length; error %lu\n", GetLastError()); + + ret = GetConsoleOriginalTitleA(buf, ARRAY_SIZE(buf)); + todo_wine ok(ret, "GetConsoleOriginalTitleA failed: %lu\n", GetLastError()); + todo_wine ok(!strcmp(buf, title), "got %s, expected %s\n", wine_dbgstr_a(buf), wine_dbgstr_a(title)); + + ret = SetConsoleTitleA("test"); + ok(ret, "SetConsoleTitleA failed: %lu\n", GetLastError()); + + ret = GetConsoleOriginalTitleA(buf, ARRAY_SIZE(buf)); + todo_wine ok(ret, "GetConsoleOriginalTitleA failed: %lu\n", GetLastError()); + todo_wine ok(!strcmp(buf, title), "got %s, expected %s\n", wine_dbgstr_a(buf), wine_dbgstr_a(title)); +} + +static void test_GetConsoleOriginalTitleW(void) +{ + WCHAR buf[64]; + DWORD ret; + WCHAR title[] = L"Original Console Title"; + + ret = GetConsoleOriginalTitleW(NULL, 0); + ok(!ret, "Unexpected string length; error %lu\n", GetLastError()); + + ret = GetConsoleOriginalTitleW(buf, 0); + ok(!ret, "Unexpected string length; error %lu\n", GetLastError()); + + ret = GetConsoleOriginalTitleW(buf, ARRAY_SIZE(buf)); + todo_wine ok(ret, "GetConsoleOriginalTitleW failed: %lu\n", GetLastError()); + buf[ret] = 0; + todo_wine ok(!wcscmp(buf, title), "got %s, expected %s\n", wine_dbgstr_w(buf), wine_dbgstr_w(title)); + + ret = SetConsoleTitleW(L"test"); + ok(ret, "SetConsoleTitleW failed: %lu\n", GetLastError()); + + ret = GetConsoleOriginalTitleW(buf, ARRAY_SIZE(buf)); + todo_wine ok(ret, "GetConsoleOriginalTitleW failed: %lu\n", GetLastError()); + todo_wine ok(!wcscmp(buf, title), "got %s, expected %s\n", wine_dbgstr_w(buf), wine_dbgstr_w(title)); + + ret = GetConsoleOriginalTitleW(buf, 5); + todo_wine ok(ret, "GetConsoleOriginalTitleW failed: %lu\n", GetLastError()); + todo_wine ok(!wcscmp(buf, L"Orig"), "got %s, expected 'Orig'\n", wine_dbgstr_w(buf)); +} + +static void test_GetConsoleOriginalTitle(void) +{ + STARTUPINFOA si = { sizeof(si) }; + PROCESS_INFORMATION info; + char **argv, buf[MAX_PATH]; + char title[] = "Original Console Title"; + BOOL ret; + + winetest_get_mainargs(&argv); + sprintf(buf, ""%s" console title_test", argv[0]); + si.lpTitle = title; + ret = CreateProcessA(NULL, buf, NULL, NULL, TRUE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &info); + ok(ret, "CreateProcess failed: %lu\n", GetLastError()); + CloseHandle(info.hThread); + wait_child_process(info.hProcess); + CloseHandle(info.hProcess); +} + static void test_GetConsoleTitleA(void) { char buf[64], str[] = "test"; @@ -4873,6 +4944,13 @@ START_TEST(console) ExitProcess(exit_code); }
+ if (argc == 3 && !strcmp(argv[2], "title_test")) + { + test_GetConsoleOriginalTitleA(); + test_GetConsoleOriginalTitleW(); + return; + } + test_current = argc >= 3 && !strcmp(argv[2], "--current"); using_pseudo_console = argc >= 3 && !strcmp(argv[2], "--pseudo-console");
@@ -5056,6 +5134,7 @@ START_TEST(console) test_GetConsoleScreenBufferInfoEx(hConOut); test_SetConsoleScreenBufferInfoEx(hConOut); test_file_info(hConIn, hConOut); + test_GetConsoleOriginalTitle(); test_GetConsoleTitleA(); test_GetConsoleTitleW(); if (!test_current)
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 tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=125045
Your paranoid android.
=== w8 (32 bit report) ===
kernel32: console.c:2352: Test failed: [9] Expected count to be 0, got 27 console.c:2352: Test failed: [13] Expected count to be 0, got 27 console.c:2352: Test failed: [15] Expected count to be 0, got 27 console.c:2442: Test failed: [9] Expected count to be 0, got 27 console.c:2442: Test failed: [13] Expected count to be 0, got 27 console.c:2442: Test failed: [15] Expected count to be 0, got 27 console.c:2532: Test failed: [9] Expected count to be 0, got 27 console.c:2532: Test failed: [13] Expected count to be 0, got 27 console.c:2532: Test failed: [15] Expected count to be 0, got 27 console.c:2948: Test failed: [9] Expected count to be 0, got 27 console.c:2948: Test failed: [13] Expected count to be 0, got 27 console.c:2948: Test failed: [15] Expected count to be 0, got 27 console.c:3038: Test failed: [9] Expected count to be 0, got 27 console.c:3038: Test failed: [13] Expected count to be 0, got 27 console.c:3038: Test failed: [15] Expected count to be 0, got 27 console.c:3127: Test failed: [9] Expected count to be 0, got 27 console.c:3127: Test failed: [13] Expected count to be 0, got 27 console.c:3127: Test failed: [15] Expected count to be 0, got 27
=== w8adm (32 bit report) ===
kernel32: console.c:2352: Test failed: [9] Expected count to be 0, got 27 console.c:2352: Test failed: [13] Expected count to be 0, got 27 console.c:2352: Test failed: [15] Expected count to be 0, got 27 console.c:2442: Test failed: [9] Expected count to be 0, got 27 console.c:2442: Test failed: [13] Expected count to be 0, got 27 console.c:2442: Test failed: [15] Expected count to be 0, got 27 console.c:2532: Test failed: [9] Expected count to be 0, got 27 console.c:2532: Test failed: [13] Expected count to be 0, got 27 console.c:2532: Test failed: [15] Expected count to be 0, got 27 console.c:2948: Test failed: [9] Expected count to be 0, got 27 console.c:2948: Test failed: [13] Expected count to be 0, got 27 console.c:2948: Test failed: [15] Expected count to be 0, got 27 console.c:3038: Test failed: [9] Expected count to be 0, got 27 console.c:3038: Test failed: [13] Expected count to be 0, got 27 console.c:3038: Test failed: [15] Expected count to be 0, got 27 console.c:3127: Test failed: [9] Expected count to be 0, got 27 console.c:3127: Test failed: [13] Expected count to be 0, got 27 console.c:3127: Test failed: [15] Expected count to be 0, got 27
=== w864 (32 bit report) ===
kernel32: console.c:2352: Test failed: [9] Expected count to be 0, got 27 console.c:2352: Test failed: [13] Expected count to be 0, got 27 console.c:2352: Test failed: [15] Expected count to be 0, got 27 console.c:2442: Test failed: [9] Expected count to be 0, got 27 console.c:2442: Test failed: [13] Expected count to be 0, got 27 console.c:2442: Test failed: [15] Expected count to be 0, got 27 console.c:2532: Test failed: [9] Expected count to be 0, got 27 console.c:2532: Test failed: [13] Expected count to be 0, got 27 console.c:2532: Test failed: [15] Expected count to be 0, got 27 console.c:2948: Test failed: [9] Expected count to be 0, got 27 console.c:2948: Test failed: [13] Expected count to be 0, got 27 console.c:2948: Test failed: [15] Expected count to be 0, got 27 console.c:3038: Test failed: [9] Expected count to be 0, got 27 console.c:3038: Test failed: [13] Expected count to be 0, got 27 console.c:3038: Test failed: [15] Expected count to be 0, got 27 console.c:3127: Test failed: [9] Expected count to be 0, got 27 console.c:3127: Test failed: [13] Expected count to be 0, got 27 console.c:3127: Test failed: [15] Expected count to be 0, got 27
=== w1064v1507 (32 bit report) ===
kernel32: console.c:2352: Test failed: [9] Expected count to be 0, got 32 console.c:2352: Test failed: [13] Expected count to be 0, got 32 console.c:2352: Test failed: [15] Expected count to be 0, got 32 console.c:2442: Test failed: [9] Expected count to be 0, got 32 console.c:2442: Test failed: [13] Expected count to be 0, got 32 console.c:2442: Test failed: [15] Expected count to be 0, got 32 console.c:2532: Test failed: [9] Expected count to be 0, got 32 console.c:2532: Test failed: [13] Expected count to be 0, got 32 console.c:2532: Test failed: [15] Expected count to be 0, got 32 console.c:2948: Test failed: [9] Expected count to be 0, got 32 console.c:2948: Test failed: [13] Expected count to be 0, got 32 console.c:2948: Test failed: [15] Expected count to be 0, got 32 console.c:3038: Test failed: [9] Expected count to be 0, got 32 console.c:3038: Test failed: [13] Expected count to be 0, got 32 console.c:3038: Test failed: [15] Expected count to be 0, got 32 console.c:3127: Test failed: [9] Expected count to be 0, got 32 console.c:3127: Test failed: [13] Expected count to be 0, got 32 console.c:3127: Test failed: [15] Expected count to be 0, got 32
=== w1064v1809 (32 bit report) ===
kernel32: console.c:2352: Test failed: [9] Expected count to be 0, got 29 console.c:2352: Test failed: [13] Expected count to be 0, got 29 console.c:2352: Test failed: [15] Expected count to be 0, got 29 console.c:2442: Test failed: [9] Expected count to be 0, got 29 console.c:2442: Test failed: [13] Expected count to be 0, got 29 console.c:2442: Test failed: [15] Expected count to be 0, got 29 console.c:2532: Test failed: [9] Expected count to be 0, got 29 console.c:2532: Test failed: [13] Expected count to be 0, got 29 console.c:2532: Test failed: [15] Expected count to be 0, got 29 console.c:2948: Test failed: [9] Expected count to be 0, got 29 console.c:2948: Test failed: [13] Expected count to be 0, got 29 console.c:2948: Test failed: [15] Expected count to be 0, got 29 console.c:3038: Test failed: [9] Expected count to be 0, got 29 console.c:3038: Test failed: [13] Expected count to be 0, got 29 console.c:3038: Test failed: [15] Expected count to be 0, got 29 console.c:3127: Test failed: [9] Expected count to be 0, got 29 console.c:3127: Test failed: [13] Expected count to be 0, got 29 console.c:3127: Test failed: [15] Expected count to be 0, got 29
=== w1064 (32 bit report) ===
kernel32: console.c:2352: Test failed: [9] Expected count to be 0, got 15 console.c:2352: Test failed: [13] Expected count to be 0, got 15 console.c:2352: Test failed: [15] Expected count to be 0, got 15 console.c:2442: Test failed: [9] Expected count to be 0, got 15 console.c:2442: Test failed: [13] Expected count to be 0, got 15 console.c:2442: Test failed: [15] Expected count to be 0, got 15 console.c:2532: Test failed: [9] Expected count to be 0, got 15 console.c:2532: Test failed: [13] Expected count to be 0, got 15 console.c:2532: Test failed: [15] Expected count to be 0, got 15 console.c:2948: Test failed: [9] Expected count to be 0, got 15 console.c:2948: Test failed: [13] Expected count to be 0, got 15 console.c:2948: Test failed: [15] Expected count to be 0, got 15 console.c:3038: Test failed: [9] Expected count to be 0, got 15 console.c:3038: Test failed: [13] Expected count to be 0, got 15 console.c:3038: Test failed: [15] Expected count to be 0, got 15 console.c:3127: Test failed: [9] Expected count to be 0, got 15 console.c:3127: Test failed: [13] Expected count to be 0, got 15 console.c:3127: Test failed: [15] Expected count to be 0, got 15
=== w1064_tsign (32 bit report) ===
kernel32: console.c:2352: Test failed: [9] Expected count to be 0, got 15 console.c:2352: Test failed: [13] Expected count to be 0, got 15 console.c:2352: Test failed: [15] Expected count to be 0, got 15 console.c:2442: Test failed: [9] Expected count to be 0, got 15 console.c:2442: Test failed: [13] Expected count to be 0, got 15 console.c:2442: Test failed: [15] Expected count to be 0, got 15 console.c:2532: Test failed: [9] Expected count to be 0, got 15 console.c:2532: Test failed: [13] Expected count to be 0, got 15 console.c:2532: Test failed: [15] Expected count to be 0, got 15 console.c:2948: Test failed: [9] Expected count to be 0, got 15 console.c:2948: Test failed: [13] Expected count to be 0, got 15 console.c:2948: Test failed: [15] Expected count to be 0, got 15 console.c:3038: Test failed: [9] Expected count to be 0, got 15 console.c:3038: Test failed: [13] Expected count to be 0, got 15 console.c:3038: Test failed: [15] Expected count to be 0, got 15 console.c:3127: Test failed: [9] Expected count to be 0, got 15 console.c:3127: Test failed: [13] Expected count to be 0, got 15 console.c:3127: Test failed: [15] Expected count to be 0, got 15
=== w10pro64 (32 bit report) ===
kernel32: console.c:2352: Test failed: [9] Expected count to be 0, got 15 console.c:2352: Test failed: [13] Expected count to be 0, got 15 console.c:2352: Test failed: [15] Expected count to be 0, got 15 console.c:2442: Test failed: [9] Expected count to be 0, got 15 console.c:2442: Test failed: [13] Expected count to be 0, got 15 console.c:2442: Test failed: [15] Expected count to be 0, got 15 console.c:2532: Test failed: [9] Expected count to be 0, got 15 console.c:2532: Test failed: [13] Expected count to be 0, got 15 console.c:2532: Test failed: [15] Expected count to be 0, got 15 console.c:2948: Test failed: [9] Expected count to be 0, got 15 console.c:2948: Test failed: [13] Expected count to be 0, got 15 console.c:2948: Test failed: [15] Expected count to be 0, got 15 console.c:3038: Test failed: [9] Expected count to be 0, got 15 console.c:3038: Test failed: [13] Expected count to be 0, got 15 console.c:3038: Test failed: [15] Expected count to be 0, got 15 console.c:3127: Test failed: [9] Expected count to be 0, got 15 console.c:3127: Test failed: [13] Expected count to be 0, got 15 console.c:3127: Test failed: [15] Expected count to be 0, got 15
=== debian11 (32 bit report) ===
ddraw: ddraw7.c:15663: Test failed: Expected unsynchronised map for flags 0x1000. ddraw7.c:15663: Test failed: Expected unsynchronised map for flags 0x3000.
=== debian11 (build log) ===
07e8:err:winediag:d3d_device_create The application wants to create a Direct3D device, but the current DirectDrawRenderer does not support this. 07e8:err:winediag:d3d_device_create The application wants to create a Direct3D device, but the current DirectDrawRenderer does not support this. 07e8:err:winediag:d3d_device_create The application wants to create a Direct3D device, but the current DirectDrawRenderer does not support this.
=== debian11 (build log) ===
Use of uninitialized value $Flaky in addition (+) at /home/testbot/lib/WineTestBot/LogUtils.pm line 720, <$LogFile> line 24739. Use of uninitialized value $Flaky in addition (+) at /home/testbot/lib/WineTestBot/LogUtils.pm line 720, <$LogFile> line 24739. Use of uninitialized value $Flaky in addition (+) at /home/testbot/lib/WineTestBot/LogUtils.pm line 720, <$LogFile> line 24739.