Clearly indicate when the log or its errors cache could not be read. Also show a note when new errors could not be detected, either because there is no reference WineTest results (which would typically happen shortly after a new test configuration has been added), or because there was an issue reading one or more of the reference reports. --- testbot/web/JobDetails.pl | 46 +++++++++++++++++++++++++++++++++++-- testbot/web/WineTestBot.css | 1 + 2 files changed, 45 insertions(+), 2 deletions(-)
diff --git a/testbot/web/JobDetails.pl b/testbot/web/JobDetails.pl index eee8df2df..7fc90bf20 100644 --- a/testbot/web/JobDetails.pl +++ b/testbot/web/JobDetails.pl @@ -351,6 +351,22 @@ sub GenerateFullLog($$$$) my ($self, $Dir, $LogName, $HideLog) = @_;
my $LogInfo = LoadLogErrors("$Dir/$LogName"); + if (defined $LogInfo->{BadLog}) + { + print "<pre class='log-note'>Could not highlight new errors: ", ($LogInfo->{BadRef} || $LogInfo->{BadLog}), "</pre>\n"; + } + elsif ($LogInfo->{NoRef} and !defined $LogInfo->{BadRef}) + { + print "<pre class='log-note'>No WineTest results are available to detect new errors</pre>\n"; + } + elsif ($LogInfo->{NoRef}) + { + print "<pre class='log-note'>Could not detect new errors: $LogInfo->{BadRef}</pre>\n"; + } + elsif (defined $LogInfo->{BadRef}) + { + print "<pre class='log-note'>Some WineTest results could not be used to detect new errors: $LogInfo->{BadRef}</pre>\n"; + }
my %NewLineNos; if ($LogInfo->{ErrCount}) @@ -397,6 +413,11 @@ sub GenerateFullLog($$$$) } close($LogFile); } + else + { + print "<pre class='log-error'><code>Unable to open '$LogName' for reading: $!</code></pre>\n"; + $IsEmpty = 0; + }
# And append the extra errors foreach my $GroupName (@{$LogInfo->{ErrGroupNames}}) @@ -535,8 +556,11 @@ EOF { next if ($LogName =~ /^old_/); my $LogInfo = LoadLogErrors("$TaskDir/$LogName"); - next if (!$LogInfo->{ErrCount}); - $LogInfos->{$LogName} = $LogInfo; + if ($LogInfo->{ErrCount} or + (defined $LogInfo->{BadLog} and !-z "$TaskDir/$LogName")) + { + $LogInfos->{$LogName} = $LogInfo; + } } my $ShowLogName = ($ReportCount > 1 or scalar(keys %$LogInfos) > 1);
@@ -554,6 +578,24 @@ EOF }
my $LogInfo = $LogInfos->{$LogName}; + if (defined $LogInfo->{BadLog}) + { + my ($_Action, $Url) = $self->GetMoreInfoLink($Key, GetLogLabel($LogName), "Full", $LogName); + print "<pre class='log-note'>The error summary is not available (<a href='$Url'>see full log instead</a>): $LogInfo->{BadLog}</pre>\n"; + } + elsif ($LogInfo->{NoRef} and !defined $LogInfo->{BadRef}) + { + print "<pre class='log-note'>No WineTest results are available to detect new errors</pre>\n"; + } + elsif ($LogInfo->{NoRef}) + { + print "<pre class='log-note'>Could not detect new errors: $LogInfo->{BadRef}</pre>\n"; + } + elsif (defined $LogInfo->{BadRef}) + { + print "<pre class='log-note'>Some WineTest results could not be used to detect new errors: $LogInfo->{BadRef}</pre>\n"; + } + foreach my $GroupName (@{$LogInfo->{ErrGroupNames}}) { print "<div class='LogDllName'>$GroupName</div>\n"; diff --git a/testbot/web/WineTestBot.css b/testbot/web/WineTestBot.css index 9a23f5fa8..3fccbd265 100644 --- a/testbot/web/WineTestBot.css +++ b/testbot/web/WineTestBot.css @@ -395,6 +395,7 @@ pre .userdisabled { color: red; } .userdeleted { color: red; }
+.log-note { font-style: italic; color: blue; } .log-info { background-color: #d9ffcc; } .log-skip { color: blue; } .log-todo { color: #d08000; }