[PATCH] testbot: Take Step dependencies into account in Job::UpdateStatus().
Francois Gouget
fgouget at codeweavers.com
Wed Apr 25 07:00:31 CDT 2018
Job::UpdateStatus() used to assume that Step n would always depend on
Step n-1. But now Step n may depend on Step 1 or any other previous
step instead.
Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
---
testbot/lib/WineTestBot/Jobs.pm | 27 ++++++++++++++++-----------
1 file changed, 16 insertions(+), 11 deletions(-)
diff --git a/testbot/lib/WineTestBot/Jobs.pm b/testbot/lib/WineTestBot/Jobs.pm
index 29f7860cb..0f80193f6 100644
--- a/testbot/lib/WineTestBot/Jobs.pm
+++ b/testbot/lib/WineTestBot/Jobs.pm
@@ -179,21 +179,26 @@ sub UpdateStatus($)
my $Status = $self->Status;
return $Status if ($Status ne "queued" && $Status ne "running");
- my (%Has, $Skip);
- my @SortedSteps = sort { $a->No <=> $b->No } @{$self->Steps->GetItems()};
+ my %Has;
+ my $Steps = $self->Steps;
+ my @SortedSteps = sort { $a->No <=> $b->No } @{$Steps->GetItems()};
foreach my $Step (@SortedSteps)
{
- my $StepStatus = $Step->UpdateStatus($Skip);
- $Has{$StepStatus} = 1;
-
- if ($StepStatus ne "queued" && $StepStatus ne "running" &&
- $StepStatus ne "completed" &&
- ($Step->Type eq "build" || $Step->Type eq "reconfig"))
+ my $Skip;
+ if ($Step->PreviousNo)
{
- # The following steps need binaries that this one was supposed to
- # produce. So skip them.
- $Skip = 1;
+ my $PrevStatus = $Steps->GetItem($Step->PreviousNo)->Status;
+ if ($PrevStatus ne "queued" && $PrevStatus ne "running" &&
+ $PrevStatus ne "completed")
+ {
+ # The previous step was supposed to provide binaries but it failed
+ # or was canceled. So skip this one.
+ $Skip = 1;
+ }
}
+
+ my $StepStatus = $Step->UpdateStatus($Skip);
+ $Has{$StepStatus} = 1;
}
# Inherit the steps most significant status.
--
2.17.0
More information about the wine-devel
mailing list