From: Hans Leidekker hans@codeweavers.com
--- dlls/ntdll/tests/rtlstr.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/dlls/ntdll/tests/rtlstr.c b/dlls/ntdll/tests/rtlstr.c index 2aebe1deda1..8988aadeac4 100644 --- a/dlls/ntdll/tests/rtlstr.c +++ b/dlls/ntdll/tests/rtlstr.c @@ -792,6 +792,7 @@ typedef struct { int res_buf_size; const char *res_buf; NTSTATUS result; + int broken_len; } ustr2astr_t;
static const ustr2astr_t ustr2astr[] = { @@ -799,7 +800,7 @@ static const ustr2astr_t ustr2astr[] = { { 10, 12, 12, "------------", 12, 12, 12, "abcdef", TRUE, 6, 7, 7, "abcdef", STATUS_SUCCESS}, { 0, 2, 12, "------------", 12, 12, 12, "abcdef", TRUE, 6, 7, 7, "abcdef", STATUS_SUCCESS}, { 10, 12, 12, NULL, 12, 12, 12, "abcdef", TRUE, 6, 7, 7, "abcdef", STATUS_SUCCESS}, - { 0, 0, 12, "------------", 12, 12, 12, "abcdef", FALSE, 6, 0, 0, "", STATUS_BUFFER_OVERFLOW}, + { 0, 0, 12, "------------", 12, 12, 12, "abcdef", FALSE, 6, 0, 0, "", STATUS_BUFFER_OVERFLOW, 1}, { 0, 1, 12, "------------", 12, 12, 12, "abcdef", FALSE, 0, 1, 1, "", STATUS_BUFFER_OVERFLOW}, { 0, 2, 12, "------------", 12, 12, 12, "abcdef", FALSE, 1, 2, 2, "a", STATUS_BUFFER_OVERFLOW}, { 0, 3, 12, "------------", 12, 12, 12, "abcdef", FALSE, 2, 3, 3, "ab", STATUS_BUFFER_OVERFLOW}, @@ -849,7 +850,8 @@ static void test_RtlUnicodeStringToAnsiString(void) ok(result == ustr2astr[test_num].result, "(test %d): RtlUnicodeStringToAnsiString(ansi, uni, %d) has result %lx, expected %lx\n", test_num, ustr2astr[test_num].doalloc, result, ustr2astr[test_num].result); - ok(ansi_str.Length == ustr2astr[test_num].res_Length, + ok(ansi_str.Length == ustr2astr[test_num].res_Length || + broken(ustr2astr[test_num].broken_len && !ansi_str.Length) /* win11 */, "(test %d): RtlUnicodeStringToAnsiString(ansi, uni, %d) ansi has Length %d, expected %d\n", test_num, ustr2astr[test_num].doalloc, ansi_str.Length, ustr2astr[test_num].res_Length); ok(ansi_str.MaximumLength == ustr2astr[test_num].res_MaximumLength, @@ -1523,6 +1525,7 @@ typedef struct { USHORT MaximumLength; const char *Buffer; NTSTATUS result; + int broken_len; } int2str_t;
static const int2str_t int2str[] = { @@ -1622,11 +1625,11 @@ static const int2str_t int2str[] = { { 2, 131072, 18, 19, "100000000000000000\0----------------", STATUS_SUCCESS}, { 2, 131072, 18, 18, "100000000000000000-----------------", STATUS_SUCCESS}, {16, 0xffffffff, 8, 9, "FFFFFFFF\0--------------------------", STATUS_SUCCESS}, - {16, 0xffffffff, 8, 8, "FFFFFFFF---------------------------", STATUS_SUCCESS}, /* No \0 term */ - {16, 0xffffffff, 8, 7, "-----------------------------------", STATUS_BUFFER_OVERFLOW}, /* Too short */ + {16, 0xffffffff, 8, 8, "FFFFFFFF---------------------------", STATUS_SUCCESS, 1}, /* No \0 term */ + {16, 0xffffffff, 8, 7, "-----------------------------------", STATUS_BUFFER_OVERFLOW, 1}, /* Too short */ {16, 0xa, 1, 2, "A\0---------------------------------", STATUS_SUCCESS}, - {16, 0xa, 1, 1, "A----------------------------------", STATUS_SUCCESS}, /* No \0 term */ - {16, 0, 1, 0, "-----------------------------------", STATUS_BUFFER_OVERFLOW}, + {16, 0xa, 1, 1, "A----------------------------------", STATUS_SUCCESS, 1}, /* No \0 term */ + {16, 0, 1, 0, "-----------------------------------", STATUS_BUFFER_OVERFLOW, 1}, {20, 0xdeadbeef, 0, 9, "-----------------------------------", STATUS_INVALID_PARAMETER}, /* ill. base */ {-8, 07654321, 0, 12, "-----------------------------------", STATUS_INVALID_PARAMETER}, /* neg. base */ }; @@ -1687,7 +1690,8 @@ static void one_RtlIntegerToUnicodeString_test(int test_num, const int2str_t *in ok(memcmp(unicode_string.Buffer, expected_unicode_string.Buffer, STRI_BUFFER_LENGTH * sizeof(WCHAR)) == 0, "(test %d): RtlIntegerToUnicodeString(%lu, %d, [out]) assigns string "%s", expected: "%s"\n", test_num, int2str->value, int2str->base, ansi_str.Buffer, expected_ansi_str.Buffer); - ok(unicode_string.Length == expected_unicode_string.Length, + ok(unicode_string.Length == expected_unicode_string.Length || + broken(int2str->broken_len && !unicode_string.Length) /* win11 */, "(test %d): RtlIntegerToUnicodeString(%lu, %d, [out]) string has Length %d, expected: %d\n", test_num, int2str->value, int2str->base, unicode_string.Length, expected_unicode_string.Length); ok(unicode_string.MaximumLength == expected_unicode_string.MaximumLength,
From: Hans Leidekker hans@codeweavers.com
--- dlls/ntdll/tests/path.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/dlls/ntdll/tests/path.c b/dlls/ntdll/tests/path.c index 4732f6a6aa8..c5b97ccf1be 100644 --- a/dlls/ntdll/tests/path.c +++ b/dlls/ntdll/tests/path.c @@ -128,10 +128,10 @@ static void test_RtlIsDosDeviceName_U(void) { "c:\nul\", 0, 0 }, { "c:\nul\foo", 0, 0 }, { "c:\nul::", 6, 6 }, - { "c:\nul::::::", 6, 6 }, - { "c:prn ", 4, 6 }, - { "c:prn.......", 4, 6 }, - { "c:prn... ...", 4, 6 }, + { "c:\nul::::::", 6, 6, TRUE }, /* fails on win11 */ + { "c:prn ", 4, 6, TRUE }, /* fails on win11 */ + { "c:prn.......", 4, 6, TRUE }, /* fails on win11 */ + { "c:prn... ...", 4, 6, TRUE }, /* fails on win11 */ { "c:NUL .... ", 4, 6 }, { "c: . . .", 0, 0 }, { "c:", 0, 0 }, @@ -140,14 +140,14 @@ static void test_RtlIsDosDeviceName_U(void) { "c:nul. . . :", 4, 6 }, { "c:nul . . :", 4, 6 }, { "c:nul0", 0, 0 }, - { "c:prn:aaa", 4, 6 }, - { "c:PRN:.txt", 4, 6 }, - { "c:aux:.txt...", 4, 6 }, - { "c:prn:.txt:", 4, 6 }, - { "c:nul:aaa", 4, 6 }, + { "c:prn:aaa", 4, 6, TRUE }, /* fails on win11 */ + { "c:PRN:.txt", 4, 6, TRUE }, /* fails on win11 */ + { "c:aux:.txt...", 4, 6, TRUE }, /* fails on win11 */ + { "c:prn:.txt:", 4, 6, TRUE }, /* fails on win11 */ + { "c:nul:aaa", 4, 6, TRUE }, /* fails on win11 */ { "con:", 0, 6 }, { "lpt1:", 0, 8 }, - { "c:com5:", 4, 8 }, + { "c:com5:", 4, 8, TRUE }, /* fails on win11 */ { "CoM4:", 0, 8 }, { "lpt9:", 0, 8 }, { "c:\lpt0.txt", 0, 0 }, @@ -159,14 +159,14 @@ static void test_RtlIsDosDeviceName_U(void) { "\??\CONIN$", 8, 12, TRUE }, /* fails on win7 */ { "\??\CONOUT$", 8, 14, TRUE }, /* fails on win7 */ { "\??\CONERR$", 0, 0 }, - { "\??\CON", 8, 6 }, + { "\??\CON", 8, 6, TRUE }, /* fails on win11 */ { "c:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" - "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\nul.txt", 1000, 6 }, + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\nul.txt", 1000, 6, TRUE }, /* fails on win11 */ { NULL, 0 } };
@@ -321,7 +321,7 @@ static void test_RtlGetFullPathName_U(void) { "foo/..", "C:\windows", "windows"}, { "\windows\nul", "\\.\nul", NULL}, { "C:\nonexistent\nul", "\\.\nul", NULL}, - { "C:\con\con", "\\.\con", NULL}, + { "C:\con\con", "\\.\con", "con", "C:\con\con"}, /* win11 */ { "C:NUL.", "\\.\NUL", NULL}, { "C:NUL", "\\.\NUL", NULL}, { "AUX", "\\.\AUX", NULL}, @@ -564,7 +564,7 @@ static void test_RtlDosPathNameToNtPathName_U(void) {L"CONERR$", L"\??\C:\windows\CONERR$", 15}, }; static const WCHAR *error_paths[] = { - NULL, L"", L" ", L"C:\nonexistent\nul", L"C:\con\con" + NULL, L"", L" ", L"C:\nonexistent\nul" };
GetCurrentDirectoryA(sizeof(curdir), curdir);
From: Hans Leidekker hans@codeweavers.com
--- dlls/ntdll/tests/wow64.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/tests/wow64.c b/dlls/ntdll/tests/wow64.c index b0f5dda5804..b8f28f6215c 100644 --- a/dlls/ntdll/tests/wow64.c +++ b/dlls/ntdll/tests/wow64.c @@ -662,7 +662,8 @@ static NTSTATUS call_func64( ULONG64 func64, int nb_args, ULONG64 *args ) return func( func64, nb_args, args ); }
-static ULONG64 main_module, ntdll_module, wow64_module, wow64cpu_module, wow64win_module; +static ULONG64 main_module, ntdll_module, wow64_module, wow64base_module, wow64con_module, + wow64cpu_module, wow64win_module;
static void enum_modules64( void (*func)(ULONG64,const WCHAR *) ) { @@ -776,6 +777,8 @@ static void check_module( ULONG64 base, const WCHAR *name ) #define CHECK_MODULE(mod) if (!wcsicmp( name, L"" #mod ".dll" )) { mod ## _module = base; return; } CHECK_MODULE(ntdll); CHECK_MODULE(wow64); + CHECK_MODULE(wow64base); + CHECK_MODULE(wow64con); CHECK_MODULE(wow64cpu); CHECK_MODULE(wow64win); #undef CHECK_MODULE
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=128840
Your paranoid android.
=== w7u_2qxl (32 bit report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== w7u_adm (32 bit report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== w7u_el (32 bit report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== w8 (32 bit report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== w8adm (32 bit report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== w864 (32 bit report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== w1064v1507 (32 bit report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== w1064v1809 (32 bit report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== w1064_tsign (32 bit report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== w10pro64 (32 bit report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== w864 (64 bit report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== w1064v1507 (64 bit report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== w1064v1809 (64 bit report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== w1064_2qxl (64 bit report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== w1064_adm (64 bit report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== w1064_tsign (64 bit report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== w10pro64 (64 bit report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== w10pro64_en_AE_u8 (64 bit report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== w10pro64_ar (64 bit report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== w10pro64_ja (64 bit report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== w10pro64_zh_CN (64 bit report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== debian11 (32 bit report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== debian11 (32 bit ar:MA report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== debian11 (32 bit de report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== debian11 (32 bit fr report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== debian11 (32 bit he:IL report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== debian11 (32 bit hi:IN report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== debian11 (32 bit ja:JP report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== debian11 (32 bit zh:CN report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== debian11b (32 bit WoW report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"
=== debian11b (64 bit WoW report) ===
ntdll: path.c:416: Test failed: Got NULL expected "con"