On Fri, 16 Jul 2021, Dmitry Timoshkov wrote: [...]
I have created this test under Windows 7, so at that time this definitely worked. While I'm not opposed to add ERROR_BAD_EXE_FORMAT as a fallback error value, I do oppose to changing in the comment Windows7 to Vista, Vista is an utterly broken platform in many aspects, promoting its name to a not related test result is not fair.
WTH??? Where do you see Vista being promoted? What the heck is this thing about fairness? What do your likes and dislikes have to do with the accuracy of the comment?
What you could have said is that it's not just the Vista machines that are missing from the failure pattern but also w7pro64 which means that either the test succeeds or is skipped there.
https://test.winehq.org/data/patterns.html#kernel32:loader
Another constructive contribution would have been to point to the WineTest results that show that the 64-bit test is being run with no failure on w7pro64 and no skip message. Then point out that there is still some doubt due to the break on line 1123.
https://test.winehq.org/data/2ffcf4402181e7e7e8c322b713924e5738506c88/win7_n...
So the next step would have been to manually submit a job with a couple of extra traces providing direct proof that this test succeeds in a 32-bit kernel32_test.exe process on w7pro64:
https://testbot.winehq.org/JobDetails.pl?Key=94182&f205=exe32.report#k20... loader.c:918: 16: LoadLibraryA succeeded
That would have proven that yes, this test does succeed on Windows 7, at least some in some cases. Leaving us with one question: why does it succeed sometimes and not others?
Now you're lucky. I still decided to do some extra tests:
* I have run the tests on various snapshots of the w7u, w7pro64 VMs and my win7u-64 VMware machine. They all show that the service packs do not change the result.
* Looking at just the Windows 7 results, the only one that has the failure is the 32-bit VM. Coincidence?
* But looking at the Windows 8.1 machines we see that it fails on cw-rx460 but not on cw-gtx560. Yet they are both 64-bit and have the same Windows 8.1 version... but not the exact same kernel32 version. Still, no clear pattern appears when adding w8 and w864 to the mix: w8 6.3.9600.17056 success w864 6.3.9600.17056 success cw-rx460 6.3.9600.17415 failure cw-gtx560 6.3.9600.19994 success Yet another Radeon mystery :-( This also tends to invalidate the above '32-bit OS' theory.
* Then I grepped all the WineTest reports which confirmed that the test fails systematically on all Windows 10 >= 1809. This is also confirmed by this TestBot job. https://testbot.winehq.org/JobDetails.pl?Key=94183
So to summarize: * Vista : 100% success * Windows 7 : mixed results * Windows 8.1 : mixed results * Windows 10 1507-1709 : 100% success * Windows 10 1809+ : 100% failure
In other words: * We don't really know what determines whether the test succeeds or fails.
* "minimal image size that Windows7 accepts" is incorrect. "minimal image size that some Windows7 accept" would be more correct. "minimal image size that Vista accepts" is correct based on our limited Vista results. But it's also imprecise because the test also succeeds on many post-Vista Windows versions.
* Could this have something to do with Microsoft Defender? (which cannot be disabled in recent Windows 10 versions and may not like the structure of this test dll)
I'll resubmit this patch with a reworded comment to reflect the current knowledge.