Module: tools
Branch: master
Commit: 34119af362f677d8e64be0577be3f8cdc1f340f6
URL: https://source.winehq.org/git/tools.git/?a=commit;h=34119af362f677d8e64be05…
Author: Francois Gouget <fgouget(a)codeweavers.com>
Date: Thu Mar 4 14:27:30 2021 +0100
testbot/LogUtils: Add support for IgnoreExceptions.
Any exception occurring while IgnoreExceptions=1 is expected and should
be ignored.
Note that this is made possible by the fact that ParseWineTestReport()
is now the sole authority on what is a report error line, and thus won't
be contradicted by GetReportLineCategory() (which lacks the context
information to deal with IgnoreExceptions directives).
Signed-off-by: Francois Gouget <fgouget(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
testbot/lib/WineTestBot/LogUtils.pm | 56 ++++++++++++++++++++++++-------------
1 file changed, 36 insertions(+), 20 deletions(-)
diff --git a/testbot/lib/WineTestBot/LogUtils.pm b/testbot/lib/WineTestBot/LogUtils.pm
index 0bd7d19..bdba8da 100644
--- a/testbot/lib/WineTestBot/LogUtils.pm
+++ b/testbot/lib/WineTestBot/LogUtils.pm
@@ -611,44 +611,60 @@ sub ParseWineTestReport($$$)
_AddReportError($LogInfo, $Cur, $LineNo, $Line);
$Cur->{LineFailures}++;
}
+ elsif (($Cur->{Unit} ne "" and
+ $Line =~ /($Cur->{UnitsRE})\.c:\d+: IgnoreExceptions=([01])/) or
+ $Line =~ /^([_.a-z0-9]+)\.c:\d+: IgnoreExceptions=([01])/)
+ {
+ my ($Unit, $Ignore) = ($1, $2);
+ _CheckUnit($LogInfo, $Cur, $Unit, "ignore exceptions");
+ $Cur->{IgnoreExceptions} = $Ignore;
+ }
elsif (($Cur->{Unit} ne "" and
$Line =~ /([0-9a-f]+):($Cur->{UnitsRE}): unhandled exception [0-9a-fA-F]{8} at /) or
$Line =~ /^([0-9a-f]+):([_.a-z0-9]+): unhandled exception [0-9a-fA-F]{8} at /)
{
my ($Pid, $Unit) = ($1, $2);
-
- if ($Cur->{Units}->{$Unit})
+ _CheckUnit($LogInfo, $Cur, $Unit, "unhandled exception");
+ if (!$Cur->{IgnoreExceptions})
{
- # This also replaces a test summary line.
- $Cur->{Pids}->{$Pid || 0} = 1;
- $Cur->{SummaryFailures}++;
+ if ($Cur->{Units}->{$Unit})
+ {
+ # This also replaces a test summary line.
+ $Cur->{Pids}->{$Pid || 0} = 1;
+ $Cur->{SummaryFailures}++;
+ }
+ _AddReportError($LogInfo, $Cur, $LineNo, $Line);
+ $Cur->{LineFailures}++;
}
- _CheckUnit($LogInfo, $Cur, $Unit, "unhandled exception");
- _AddReportError($LogInfo, $Cur, $LineNo, $Line);
- $Cur->{LineFailures}++;
}
elsif ($Line =~ /Unhandled exception: .* in .* code /)
{
- # This also replaces a test summary line. The pid is unknown so use 0.
- $Cur->{Pids}->{0} = 1;
- $Cur->{SummaryFailures}++;
- _AddReportError($LogInfo, $Cur, $LineNo, $Line);
- $Cur->{LineFailures}++;
+ if (!$Cur->{IgnoreExceptions})
+ {
+ # This also replaces a test summary line. The pid is unknown so use 0.
+ $Cur->{Pids}->{0} = 1;
+ $Cur->{SummaryFailures}++;
+ _AddReportError($LogInfo, $Cur, $LineNo, $Line);
+ $Cur->{LineFailures}++;
+ }
}
elsif (($Cur->{Unit} ne "" and
$Line =~ /($Cur->{UnitsRE})\.c:\d+: unhandled exception [0-9a-fA-F]{8} in child process ([0-9a-f]+)/) or
$Line =~ /^([_.a-z0-9]+)\.c:\d+: unhandled exception [0-9a-fA-F]{8} in child process ([0-9a-f]+)/)
{
my ($Unit, $Pid) = ($1, $2);
- if ($Cur->{Units}->{$Unit})
+ _CheckUnit($LogInfo, $Cur, $Unit, "child exception");
+ if (!$Cur->{IgnoreExceptions})
{
- # This also replaces a test summary line.
- $Cur->{Pids}->{$Pid || 0} = 1;
- $Cur->{SummaryFailures}++;
+ if ($Cur->{Units}->{$Unit})
+ {
+ # This also replaces a test summary line.
+ $Cur->{Pids}->{$Pid || 0} = 1;
+ $Cur->{SummaryFailures}++;
+ }
+ _AddReportError($LogInfo, $Cur, $LineNo, $Line);
+ $Cur->{LineFailures}++;
}
- _CheckUnit($LogInfo, $Cur, $Unit, "child exception");
- _AddReportError($LogInfo, $Cur, $LineNo, $Line);
- $Cur->{LineFailures}++;
}
elsif (($Cur->{Unit} ne "" and
$Line =~ /([0-9a-f]+):($Cur->{Unit}): \d+ tests? executed \((\d+) marked as todo, (\d+) failures?\), (\d+) skipped\./) or
Module: tools
Branch: master
Commit: 13939bdc2e8dc09154037527b7d79ee8c5a19d77
URL: https://source.winehq.org/git/tools.git/?a=commit;h=13939bdc2e8dc0915403752…
Author: Francois Gouget <fgouget(a)codeweavers.com>
Date: Thu Mar 4 14:26:02 2021 +0100
testbot/web: Fix the task count on the index page.
Tasks that have not started yet must be counted too!
Signed-off-by: Francois Gouget <fgouget(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
testbot/web/index.pl | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/testbot/web/index.pl b/testbot/web/index.pl
index 603f295..1336d1e 100644
--- a/testbot/web/index.pl
+++ b/testbot/web/index.pl
@@ -239,6 +239,8 @@ package StatusPage;
use ObjectModel::CGI::FreeFormPage;
our @ISA = qw(ObjectModel::CGI::FreeFormPage);
+use ObjectModel::Collection;
+
use WineTestBot::Config;
use WineTestBot::Engine::Notify;
use WineTestBot::Jobs;
@@ -357,7 +359,8 @@ sub GenerateBody($)
# pretty rare queued jobs. But doing so one job at a time is inefficient so
# do it all at once now and store the results in ...->{JobsInfo}.
my $Tasks = CreateTasks();
- $Tasks->AddFilter("Started", [$CutOff], ">=");
+ $Tasks->AddFilter(FilterOr(FilterValue("Started", ">=", [$CutOff]),
+ FilterNull("Started")));
foreach my $Task (@{$Tasks->GetItems()})
{
my $JobInfo = ($JobsCollectionBlock->{JobsInfo}->{$Task->JobId} ||= {});
Module: tools
Branch: master
Commit: 4591bc9dac2689a66700e2b1bb7f5bf3ae53dc6f
URL: https://source.winehq.org/git/tools.git/?a=commit;h=4591bc9dac2689a66700e2b…
Author: Francois Gouget <fgouget(a)codeweavers.com>
Date: Thu Mar 4 13:55:24 2021 +0100
winetest/dissect: Don't close nonexistent test units.
Signed-off-by: Francois Gouget <fgouget(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
winetest/dissect | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/winetest/dissect b/winetest/dissect
index fc83726..7f4f327 100755
--- a/winetest/dissect
+++ b/winetest/dissect
@@ -770,7 +770,7 @@ while ($line = <IN>) {
# And close the current test unit taking into account
# it may have been polluted by the new one.
$broken = 1;
- close_test_unit(0);
+ close_test_unit(0) if ($dll ne "");
# Then switch to the new test unit, not for the past lines, but for
# those before the next 'start' line. This 'new' test unit may have
Module: tools
Branch: master
Commit: 7cc1dd45039e18a53edabaf87f37399488cfa715
URL: https://source.winehq.org/git/tools.git/?a=commit;h=7cc1dd45039e18a53edabaf…
Author: Francois Gouget <fgouget(a)codeweavers.com>
Date: Thu Mar 4 13:55:21 2021 +0100
testbot/LogUtils: Don't close nonexistent test units.
Signed-off-by: Francois Gouget <fgouget(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
testbot/lib/WineTestBot/LogUtils.pm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/testbot/lib/WineTestBot/LogUtils.pm b/testbot/lib/WineTestBot/LogUtils.pm
index 4d2619c..0bd7d19 100644
--- a/testbot/lib/WineTestBot/LogUtils.pm
+++ b/testbot/lib/WineTestBot/LogUtils.pm
@@ -683,7 +683,7 @@ sub ParseWineTestReport($$$)
# First close the current test unit taking into account
# it may have been polluted by the new one.
$Cur->{IsBroken} = 1;
- _CloseTestUnit($LogInfo, $Cur, 0);
+ _CloseTestUnit($LogInfo, $Cur, 0) if ($Cur->{Dll} ne "");
# Then switch to the new test unit, not for the past lines, but for
# those before the next 'start' line. This 'new' test unit may have