[3/4] testbot/web: Improve the job status reporting on the home page.
Francois Gouget
fgouget at codeweavers.com
Mon Jan 21 21:11:34 CST 2013
It is interesting to know if there were test failures even if a VM misbehaved. So report test failures even if some of the job's tasks failed.
Conversely, don't claim that jobs like the 'Wine update' have 0 test failures.
Colorize the status to make errors and test failures easier to spot.
Also link to the job details page from the status field.
---
Conceptually this is independent from the other patches in the series
but I just want to avoid conflicts (especially with 1/4).
testbot/web/WineTestBot.css | 6 ++++
testbot/web/index.pl | 64 +++++++++++++++++++++++++++++++++++--------
2 files changed, 59 insertions(+), 11 deletions(-)
diff --git a/testbot/web/WineTestBot.css b/testbot/web/WineTestBot.css
index 29902ff..b7e7248 100644
--- a/testbot/web/WineTestBot.css
+++ b/testbot/web/WineTestBot.css
@@ -320,3 +320,9 @@ pre
margin-bottom: 2em;
background-color: red;
}
+
+.queued { color: black; }
+.running { color: blue; }
+.success { color: green; }
+.testfail { color: red; }
+.botfail { color: #e55600; }
diff --git a/testbot/web/index.pl b/testbot/web/index.pl
index 20ac591..6d88106 100644
--- a/testbot/web/index.pl
+++ b/testbot/web/index.pl
@@ -20,6 +20,7 @@ use strict;
package JobStatusBlock;
+use URI::Escape;
use ObjectModel::CGI::CollectionBlock;
use WineTestBot::Branches;
@@ -76,23 +77,64 @@ sub GetDisplayValue
return $Item->Patch->FromName;
}
- if ($PropertyDescriptor->GetName() eq "Status" &&
- $Item->Status eq "completed")
+ return $self->SUPER::GetDisplayValue(@_);
+}
+
+sub GenerateDataCell
+{
+ my $self = shift;
+ my ($Item, $PropertyDescriptor, $DetailsPage) = @_;
+
+ my $PropertyName = $PropertyDescriptor->GetName();
+ if ($PropertyName eq "Status")
{
- my $Failures = 0;
- my $Steps = $Item->Steps;
- foreach my $StepKey (@{$Steps->GetKeys()})
+ print "<td><a href='/JobDetails.pl?Key=", uri_escape($Item->GetKey()), "'>";
+
+ my %HTMLChunks = ("queued" => "<span class='queued'>queued</span>",
+ "running" => "<span class='running'>running</span>",
+ "completed" => "<span class='success'>completed</span>",
+ "failed" => "<span class='botfail'>failed</span>");
+ my $Status = $Item->Status;
+ my $HTMLStatus = $HTMLChunks{$Status} || $Status;
+ if ($Status eq "completed" || $Status eq "failed")
{
- my $Tasks = $Steps->GetItem($StepKey)->Tasks;
- foreach my $TaskKey (@{$Tasks->GetKeys()})
+ my $Failures = 0;
+ my $HasTestResult;
+ my $Steps = $Item->Steps;
+ foreach my $StepKey (@{$Steps->GetKeys()})
+ {
+ my $Tasks = $Steps->GetItem($StepKey)->Tasks;
+ foreach my $TaskKey (@{$Tasks->GetKeys()})
+ {
+ my $TaskFailures = $Tasks->GetItem($TaskKey)->TestFailures;
+ if ($TaskFailures ne "")
+ {
+ $HasTestResult = 1;
+ $Failures += $TaskFailures;
+ }
+ }
+ }
+ if (!$HasTestResult)
{
- $Failures += $Tasks->GetItem($TaskKey)->TestFailures;
+ print $HTMLStatus;
+ }
+ else
+ {
+ $HTMLStatus = $Item->Status eq "completed" ? "" : "$HTMLStatus - ";
+ my $class = $Failures ? "testfail" : "success";
+ print "$HTMLStatus<span class='$class'>$Failures test failures</span>";
}
}
- return $Item->Status . " - " . $Failures . " failures";
+ else
+ {
+ print $HTMLStatus;
+ }
+ print "</a></td>\n";
+ }
+ else
+ {
+ $self->SUPER::GenerateDataCell(@_);
}
-
- return $self->SUPER::GetDisplayValue(@_);
}
package VMStatusBlock;
--
1.7.10.4
More information about the wine-patches
mailing list