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.
https://bugs.winehq.org/show_bug.cgi?id=45025
tokktokk fdsfgs@krutt.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |fdsfgs@krutt.org
https://bugs.winehq.org/show_bug.cgi?id=45025
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #1 from François Gouget fgouget@codeweavers.com --- This is done.
This is the result of a long patch series that reworked the Build.pl script to rely more on the Wine makefiles, and on the move of the patch parser to the new PatchUtils.pm module so that Build.pl can know which tests to rebuild.
The list below has the most important patches (some may be missing).
commit 6fbd57b4f50c5a39e394dfbf0f97662e8a15a226 Author: Francois Gouget fgouget@codeweavers.com Date: Wed Jun 13 10:23:42 2018 +0200
testbot: Create a single Job per patch even for multiple modules.
So far a build task could only provide the 32 and 64 bit test executables for a single dll or program. Also, because of the lack of proper dependency support between steps it was impossible to have multiple build steps. So the TestBot used to create one job per module. However the patch status site can only keep track of one job per patch. This means some failures could be missed if they did not happen in the one job tracked by the patch status site. Now that Build.pl rebuilds all the impacted test executables the Testbot systematically creates a single job and a single build task and retrieves all the test executables in one go. This also has the advantage of reducing the number of VM reverts. Another side-effect of this change is that if the patch modifies the tests of multiple modules and the compilation of one them fails, no test will be run. Before only the tests impacted by the failed compilation would have been skipped. However a compilation error is grounds for resubmitting the patch, at which time the tests will be rerun anyway.
Signed-off-by: Francois Gouget fgouget@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
commit fb84879ce70a0ad379bc779a5c9c1c1483443874 Author: Francois Gouget fgouget@codeweavers.com Date: Wed Jun 13 10:23:28 2018 +0200
testbot: Remove the unneeded Build.pl parameters.
Signed-off-by: Francois Gouget fgouget@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
commit 15ab1a7995221e0b93bdf9c3fc4dccb8bf461109 Author: Francois Gouget fgouget@codeweavers.com Date: Tue Jun 12 11:52:13 2018 +0200
testbot/build: Always rebuild all the impacted test executables.
This means Build.pl no longer needs the PatchType and BaseName parameters. But still keep support for them for compatibility with WineRunBuild.pl.
Signed-off-by: Francois Gouget fgouget@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
commit 6521df329b7b38d55f3d84ad7783097ee97ef382 Author: Francois Gouget fgouget@codeweavers.com Date: Thu May 31 10:06:10 2018 +0200
testbot: Fix handling of test unit additions/removals in patch series.
The TestBot used to only analyse the last patch in the series to determine whether it impacts the tests or not. However patches to resource files and helper dlls require having an up-to-date list of the test units, and that list may be impacted by previous patches in the series.
Signed-off-by: Francois Gouget fgouget@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
commit f9501a1f91a5e2a5da2649d1e74ca678c950d375 Author: Francois Gouget fgouget@codeweavers.com Date: Wed May 30 08:05:35 2018 +0200
testbot/build: Fix handling of directory addition / removal.
When a directory is added or removed we must re-run make_makefiles.
Signed-off-by: Francois Gouget fgouget@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
commit aa2a4355b05cdcbbc5f0a1184859f0eeaa6c83c1 Author: Francois Gouget fgouget@codeweavers.com Date: Wed May 30 08:05:15 2018 +0200
testbot/build: Always rebuild the native tools.
It does not take long and it is actually hard to really know when to rebuild them if taking into account their libs/ and include/ dependencies.
Signed-off-by: Francois Gouget fgouget@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
commit 4bf681b11dfafa2dd7f9f769e957d0fa5b6b43ec Author: Francois Gouget fgouget@codeweavers.com Date: Tue May 29 00:42:49 2018 +0200
testbot: Fix handling of test unit deletion + helper dll patch.
Take into account deleted test units when getting the full test unit list.
Signed-off-by: Francois Gouget fgouget@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
commit 6641ea6dea6368169786b3018525abb9f23775fa Author: Francois Gouget fgouget@codeweavers.com Date: Tue May 29 00:42:30 2018 +0200
testbot/build: Simplify Build.pl by reusing the patch analyser.
Also better identify patches that require rebuilding the native tools.
Signed-off-by: Francois Gouget fgouget@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
commit 603027bebc8d118f767e5cf83eb17246258bf9e9 Author: Francois Gouget fgouget@codeweavers.com Date: Mon May 28 15:09:15 2018 +0200
testbot/build: Rely on Wine's makefiles and simplify Build.pl.
Assume the dependencies in Wine's makefiles work and let them decide whether to re-run configure, update include files or rebuild some dlls before the test executable, etc.
Signed-off-by: Francois Gouget fgouget@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
commit 569b5f5b47fdfc0d37f9e8139d3ad4e31be60412 Author: Francois Gouget fgouget@codeweavers.com Date: Mon May 28 15:06:14 2018 +0200
testbot/build: Add support for test helper dlls and make the patch parser reusable.
Don't mistake the helper dlls C source files for test units. Also correctly handle patches that add or remove (i.e. rename) a resource file or helper dll. And move the patch parser to its own module so it can be reused, including by processes that don't use / have access to the database.
Signed-off-by: Francois Gouget fgouget@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
https://bugs.winehq.org/show_bug.cgi?id=45025
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #2 from Austin English austinenglish@gmail.com --- Closing.