https://bugs.winehq.org/show_bug.cgi?id=45025
Bug ID: 45025 Summary: Multi-dll patches vs patches website Product: Wine-Testbot Version: unspecified Hardware: x86 OS: Linux Status: NEW Severity: normal Priority: P2 Component: unknown Assignee: wine-bugs@winehq.org Reporter: fgouget@codeweavers.com Distribution: ---
The Testbot integrates with Wine's patch tracking website by providing it with the job id of the job corresponding to patches that impact the tests. This makes it possible to automatically flag patches that cause new test failures on Windows.
https://source.winehq.org/patches/
However when a patch modifies the tests of multiple dlls (for instance d3d8.dll and d3d9.dll) the TestBot creates one job per dll. This cannot work with the patches website which can only deal with one job per patch.
In theory putting all the relavant tasks would be doable since there should be no collision between the test executables.
The reasons for the current situation are: * The build step only knows how to build one 3é bit and one matching 64 bit test executable. So in the d3d8 and d3d9 case it would be unable to create both d3d8_test.exe and d3d9_test.exe. * Each step in a job implicitly dependended on the previous step. So a failure to build d3d8_test.exe would have caused the d3d9 tests to be skipped too. However this special behavior was specific to the first step so without modification a failure to build the d3d9 test executable in step 2 would likely not have prevented the TestBot from trying to run the d3d9 tests.
However now the TestBot supports proper dependencies between steps. So it's possible to have the d3d8 tests depend on the d3d8 build and the d3d9 tests depend on the d3d9 build, and have both be completely independent.
There is also progress towards simplifying the build task which would likely make it simpler to deal with building all the test executables in one task. However this would cause all the builds to succeed or fail together because all the other steps would depend on that one build step. So for instance if the d3d9_test.exe build fails, no test would be run even if d3d8test.exe was successfully built. That may be acceptable though since the patch would need to be resubmitted anyway.