https://bugs.winehq.org/show_bug.cgi?id=50783
Bug ID: 50783 Summary: WineTest declares dlls with dots in their name as missing Product: Wine Version: 6.3 Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: testcases Assignee: wine-bugs@winehq.org Reporter: fgouget@codeweavers.com Distribution: ---
It turns out that winetest.exe has been checking the presence of the dlls by calling LoadLibrary("serialui") and not LoadLibrary("serialui.dll"). Surprisingly this works.
But if the dll name contains dots, such as "lib.and.dot.dll", then LoadLibrary("lib.and.dot") does not work, even if lib.and.dot.dll does exist, as confirmed by LoadLibrary("lib.and.dot.dll"). At least in Wine. So this causes winetest.exe to skip the lib.and.dot tests because the dll is missing.
Maybe that's a LoadLibrary() Wine bug.
Or maybe the fix would be to add the '.dll' extension... except if the name from the test executable ends in .exe, .com, .ocx, etc. But this would require a list of authorized library extensions (or do the checks twice: once without and once with the extra .dll extension).
lib.and.dot_test.exe -> lib.and.dot.dll msscript.ocx_test.exe -> msscript.ocx serialui_test.exe -> serialui.dll reg.exe_test.exe -> reg.exe (yes WineTest calls LoadLibrary("reg.exe")) chcp.com_test.exe -> chcp.com ndis.sys_test.exe -> ndis.sys ...
Or change the test executable filenames so they always have the full name of the tested dll.
Or this could be fixed by not doing the LoadLibrary() check at all: https://bugs.winehq.org/show_bug.cgi?id=45032#c1