kernel32/tests: Skip some console tests on w1064v1909.

We get conhost.exe:tty failures on testbot:
- not for version prior to w1064v1909 (these tests require
  pseudo-consoles, which are not implemented in these Windows
  version).
- for w1064v1909
- not for W10 versions after w1064v1909.

So, we assume that pseudo-console support is immature in this
Windows version: skip all the remaining test at the first
discrepancy point.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53465
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
This commit is contained in:
Eric Pouech 2022-12-21 17:11:49 +01:00 committed by Alexandre Julliard
parent f3e381d1c9
commit af215210f0

View file

@ -628,12 +628,22 @@ static void _test_cursor_pos(unsigned line, int expect_x, int expect_y)
info.dwCursorPosition.Y, expect_y);
}
static void test_write_console(void)
static BOOL test_write_console(void)
{
child_set_output_mode(ENABLE_PROCESSED_OUTPUT | ENABLE_WRAP_AT_EOL_OUTPUT | ENABLE_VIRTUAL_TERMINAL_PROCESSING);
child_string_request(REQ_WRITE_CONSOLE, L"abc");
skip_hide_cursor();
if (skip_sequence("\x1b[H \x1b[32m0\x1b[41m1\x1b[30m2"))
{
/* we get this on w1064v1909 (and more discrepancies afterwards).
* This is inconsistent with ulterior w10 versions. Assume it's
* immature result, and skip rest of tests.
*/
console_output_count = 0;
return FALSE;
}
expect_output_sequence("abc");
skip_sequence("\x1b[?25h"); /* show cursor */
@ -961,9 +971,11 @@ static void test_write_console(void)
skip_sequence("\x1b[?25h"); /* show cursor */
expect_empty_output();
test_cursor_pos(1, 23);
return TRUE;
}
static void test_tty_output(void)
static BOOL test_tty_output(void)
{
CHAR_INFO char_info_buf[2048], char_info;
HANDLE sb, sb2;
@ -1197,7 +1209,7 @@ static void test_tty_output(void)
expect_output_sequence("\x1b[?25h"); /* show cursor */
expect_empty_output();
test_write_console();
if (!test_write_console()) return FALSE;
sb = child_create_screen_buffer();
child_set_active(sb);
@ -1244,6 +1256,8 @@ static void test_tty_output(void)
expect_output_sequence("\x1b[H"); /* set cursor */
expect_output_sequence("\x1b[?25h"); /* show cursor */
expect_empty_output();
return TRUE;
}
static void write_console_pipe(const char *buf)
@ -1836,12 +1850,16 @@ static void test_pseudoconsole(void)
if (!broken_version)
{
test_tty_output();
test_read_console_control();
test_read_console();
test_tty_input();
if (test_tty_output())
{
test_read_console_control();
test_read_console();
test_tty_input();
}
else
win_skip("Partially supported windows version. Skipping rest of the tests\n");
}
else win_skip("Skipping tty output tests on broken Windows version\n");
else win_skip("Skipping tty tests on broken Windows version\n");
CloseHandle(child_pipe);
wait_child_process(child_process);