On 3/21/21 10:06 PM, Francois Gouget wrote:
TestLauncher now detects missing entry points. For instance:
https://testbot.winehq.org/JobDetails.pl?Key=87361&f201=exe32.report#k20...
rtworkq.c:0: Tests skipped: missing entry point (details below) | rtworkq_test.exe - Entry Point Not Found | The procedure entry point CoGetApartmentType could not be located in the dynamic link library ole32.dll.
The two lines starting with "|" are extracted from the Windows critical error dialog and clearly show the issue.
The remaining question is whether this case should really be a skip or a failure.
I think particular case it should not run this test on Vista at all, because rtworkq.dll does not exist there. That's why I didn't bother with pointer checks, CoGetApartmentType() is always available where rtworkq.dll is available. Vista is probably a bad example.
A general failure/timeout is equally informative, screenshots then will have first missing function name, do we need more than that?
If a dll is missing the past policy was to just skip the test so I carried on for missing entry points, ordinals, and indirectly missing dlls (when a test links with a dll which links with a missing dll).
Reporting missing entry points as failures would make it more obvious that the test needs fixing to use GetProcAddress(). But in some cases, such as rtworkq:rtworkq here, that may be somewhat pointless (it would be unable to perform any of the current tests without CoGetApartmentType()).
So what's the general consensus on this?