[PATCH 1/7] qedit/tests: Add more tests for sample grabber filter interfaces.
Francois Gouget
fgouget at codeweavers.com
Tue Apr 16 23:17:58 CDT 2019
On Mon, 15 Apr 2019, Zebediah Figura wrote:
[...]
> >> This is a little confusing. w2008s64 doesn't ship qedit, and winetest
> >> accordingly doesn't run it. Shouldn't the TestBot also skip it?
> >
> > That's because WineTest uses the executable's filename to guess which
> > dll is being tested and check whether it is present.
> >
> > But that does not work for the TestBot since the user can upload
> > executables with arbitrary names. So the TestBot's TestLauncher (which
> > replaces WineTest.exe) grabs the list of dlls that the executable links
> > with and checks whether they are present.
> >
> > But qedit_test.exe does not link with qedit.dll since it's all COM. So
> > all looks fine and TestLauncher runs the test.
> >
>
> I see. What do you recommend as the solution to this problem?
Here are some options:
1. Modify TestLauncher.exe to do things like WineTest.exe and if the
filename looks like xxx_test.exe, refuse to run it if xxx.dll cannot
be loaded. But then we run the risk of not being able to run
my_test.exe.
2. Do the above only if TestLauncher is given a specific argument which
would only be used for executables compiled by the TestBot from a
patch, meaning when we know that xxx really is a dll name.
The problem with 1 and 2 is that we are going to run into the same
problem as WineTest.exe, which is that it sometimes fails to run tests
that it should have been running because it fails to load the tested
dll.
Bug 43052 - WineTest does not run the vcomp tests
https://bugs.winehq.org/show_bug.cgi?id=45032
Which was initially a TestLauncher issue:
Bug 31609 - TestLauncher says a required DLL is missing, but the test runs fine without TestLauncher
https://bugs.winehq.org/show_bug.cgi?id=31609#c6
3. Detect if the qedit functionality is present and win_skip() if not.
I don't know the best way to check if the qedit functionality is
present.
Check a landmark QueryInterface() result?
Manually check the registry?
COM being quite widespread it feels like we should probably have a
standard way of doing this type of check.
But I'm certainly not excluding other approaches.
--
Francois Gouget <fgouget at codeweavers.com>
More information about the wine-devel
mailing list