It is likely that configure will need to be rerun after a make_makefiles, even outside of full rebuilds. In particular this is the case when adding a new dll, program or test directory. So take the configure time out of the full-rebuild timeouts and into its own $ReconfigBuildTimeout setting.
Signed-off-by: Francois Gouget fgouget@codeweavers.com ---
This avoids getting a build timeout when adding a new test directory, such as happened to the chcp.com test:
https://testbot.winehq.org/JobDetails.pl?Key=83895
(On my box the build clocked in at 26s but on the TestBot configure alone takes from 40 to 58s.)
testbot/lib/WineTestBot/Config.pm | 11 +++++++---- testbot/lib/WineTestBot/PatchUtils.pm | 7 +++++-- 2 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/testbot/lib/WineTestBot/Config.pm b/testbot/lib/WineTestBot/Config.pm index 68709e526e..2f01e951bd 100644 --- a/testbot/lib/WineTestBot/Config.pm +++ b/testbot/lib/WineTestBot/Config.pm @@ -31,7 +31,7 @@ use vars qw (@ISA @EXPORT @EXPORT_OK $UseSSL $LogDir $DataDir $BinDir $MaxVMsWhenIdle $WaitForBoot $SleepAfterBoot $SleepAfterRevert $VMToolTimeout $MaxVMErrors $MaxTaskTries $AdminEMail $RobotEMail $WinePatchToOverride $WinePatchCc - $ExeBuildTimeout $ExeModuleTimeout + $ReconfigBuildTimeout $ExeBuildTimeout $ExeModuleTimeout $WineBuildTimeout $WineModuleTimeout $TimeoutMargin $SuiteTimeout $SingleTimeout $SingleAvgTime $MaxUnitSize $TagPrefix $ProjectName $PatchesMailingList $LDAPServer @@ -48,7 +48,7 @@ require Exporter; $SleepAfterRevert $VMToolTimeout $MaxVMErrors $MaxTaskTries $AdminEMail $RobotEMail $WinePatchToOverride $WinePatchCc $SuiteTimeout - $ExeBuildTimeout $ExeModuleTimeout + $ReconfigBuildTimeout $ExeBuildTimeout $ExeModuleTimeout $WineBuildTimeout $WineModuleTimeout $TimeoutMargin $SuiteTimeout $SingleTimeout $SingleAvgTime $MaxUnitSize $TagPrefix $ProjectName $PatchesMailingList @@ -109,15 +109,18 @@ $MaxVMErrors = 3; # How many times to run a test that fails before giving up. $MaxTaskTries = 3;
+# Build configure timeout (in seconds) +$ReconfigBuildTimeout = 60; + # Exe build timeouts (in seconds) # - For a full build -$ExeBuildTimeout = 7 * 60; +$ExeBuildTimeout = 6 * 60; # - For a single module $ExeModuleTimeout = 30;
# Wine build timeouts (in seconds) # - For a full build -$WineBuildTimeout = 25 * 60; +$WineBuildTimeout = 24 * 60; # - For a single module $WineModuleTimeout = 60;
diff --git a/testbot/lib/WineTestBot/PatchUtils.pm b/testbot/lib/WineTestBot/PatchUtils.pm index 26c16c4127..974ff8eb6b 100644 --- a/testbot/lib/WineTestBot/PatchUtils.pm +++ b/testbot/lib/WineTestBot/PatchUtils.pm @@ -521,19 +521,22 @@ sub GetBuildTimeout($$) # Set $ModuleCount to 0 if a full rebuild is needed my $ModuleCount = (!$Impacts or $Impacts->{RebuildRoot}) ? 0 : scalar(keys %{$Impacts->{BuildModules}}); + my $Reconfig = (!$Impacts or $Impacts->{Autoconf} or $Impacts->{MakeMakefiles});
my ($ExeTimeout, $WineTimeout) = (0, 0); if ($ExeCount) { my $OneBuild = $ModuleCount ? $ModuleCount * $ExeModuleTimeout : $ExeBuildTimeout; - $ExeTimeout = $ExeCount * min($ExeBuildTimeout, $OneBuild); + $ExeTimeout = $ExeCount * min($ExeBuildTimeout, $OneBuild) + + ($Reconfig ? $ExeCount * $ReconfigBuildTimeout : 0); } if ($WineCount) { my $OneBuild = $ModuleCount ? $ModuleCount * $WineModuleTimeout : $WineBuildTimeout; - $WineTimeout = $WineCount * min($WineBuildTimeout, $OneBuild); + $WineTimeout = $WineCount * min($WineBuildTimeout, $OneBuild) + + ($Reconfig ? $WineCount * $ReconfigBuildTimeout : 0); }
return $ExeTimeout + $WineTimeout;