Signed-off-by: Francois Gouget fgouget@codeweavers.com --- Because it all depends on rounding, this failure would only happen in the 64-bit ntdll:env test on the TestBot. Here I could only reproduce it when starting ntdll:env from a Windows process rather than directly from ./wine, both for 32- and 64-bit. --- dlls/ntdll/tests/env.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/dlls/ntdll/tests/env.c b/dlls/ntdll/tests/env.c index 9cfbf9eb435..351f8d5df5a 100644 --- a/dlls/ntdll/tests/env.c +++ b/dlls/ntdll/tests/env.c @@ -456,6 +456,7 @@ static void test_process_params(void) pos = check_string( cur_params, &cur_params->ShellInfo, NULL, pos ); pos = check_string( cur_params, &cur_params->RuntimeInfo, NULL, pos ); /* environment may follow */ + pos = align(pos, sizeof(void *)); str = (WCHAR *)pos; if (pos - (UINT_PTR)cur_params < cur_params->Size) str += get_env_length(str); ok( (char *)str == (char *)cur_params + cur_params->Size,
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=92977
Your paranoid android.
=== w7u_2qxl (32 bit report) ===
ntdll: env.c:462: Test failed: wrong end ptr 006F17B0/006F17AE
=== w7u_adm (32 bit report) ===
ntdll: env.c:462: Test failed: wrong end ptr 002E17B0/002E17AE
=== w7u_el (32 bit report) ===
ntdll: env.c:462: Test failed: wrong end ptr 002D17B0/002D17AE
=== wvistau64 (64 bit report) ===
ntdll: env.c:462: Test failed: wrong end ptr 00000000008424B0/00000000008424AA
=== w2008s64 (64 bit report) ===
ntdll: env.c:462: Test failed: wrong end ptr 00000000002A2570/00000000002A256C
On 6/23/21 6:15 AM, Francois Gouget wrote:
Signed-off-by: Francois Gouget fgouget@codeweavers.com
Because it all depends on rounding, this failure would only happen in the 64-bit ntdll:env test on the TestBot. Here I could only reproduce it when starting ntdll:env from a Windows process rather than directly from ./wine, both for 32- and 64-bit.
dlls/ntdll/tests/env.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/dlls/ntdll/tests/env.c b/dlls/ntdll/tests/env.c index 9cfbf9eb435..351f8d5df5a 100644 --- a/dlls/ntdll/tests/env.c +++ b/dlls/ntdll/tests/env.c @@ -456,6 +456,7 @@ static void test_process_params(void) pos = check_string( cur_params, &cur_params->ShellInfo, NULL, pos ); pos = check_string( cur_params, &cur_params->RuntimeInfo, NULL, pos ); /* environment may follow */
- pos = align(pos, sizeof(void *)); str = (WCHAR *)pos; if (pos - (UINT_PTR)cur_params < cur_params->Size) str += get_env_length(str); ok( (char *)str == (char *)cur_params + cur_params->Size,
I did some extensive tests of this; Windows really doesn't align the initial parameters (and only initial parameters) size, but Wine does.
On Wed, 23 Jun 2021, Zebediah Figura (she/her) wrote: [...]
I did some extensive tests of this; Windows really doesn't align the initial parameters (and only initial parameters) size, but Wine does.
So it's the ROUND_SIZE() in append_unicode_string() called by RtlCreateProcessParametersEx() that's wrong?
https://source.winehq.org/git/wine.git/blob/5c756468656afc9207c0f51f774bbc29...
On 6/23/21 10:47 AM, Francois Gouget wrote:
On Wed, 23 Jun 2021, Zebediah Figura (she/her) wrote: [...]
I did some extensive tests of this; Windows really doesn't align the initial parameters (and only initial parameters) size, but Wine does.
So it's the ROUND_SIZE() in append_unicode_string() called by RtlCreateProcessParametersEx() that's wrong?
https://source.winehq.org/git/wine.git/blob/5c756468656afc9207c0f51f774bbc29...
It is, but only for the initial process parameters. See the above tests for RtlCreateProcessParametersEx().