[tools] testbot/LogUtils: Handle child process crashes.

Francois Gouget fgouget at codeweavers.com
Mon Mar 16 18:02:47 CDT 2020


Make sure they are included in the failure count, highlighted as
failures and sanitized before comparison for the new failures
detection.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48651
Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
---

I'm sending this patch as a reply to the Wine one because they work 
together and maybe that makes review easier (or maybe it's the 
opposite).

In any case they don't have to be committed or rather 'put in 
production' in a specific order. Either one on its own won't make things 
worse than they currently are.

 testbot/lib/WineTestBot/LogUtils.pm | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/testbot/lib/WineTestBot/LogUtils.pm b/testbot/lib/WineTestBot/LogUtils.pm
index 57229bc40d..99c30e0f76 100644
--- a/testbot/lib/WineTestBot/LogUtils.pm
+++ b/testbot/lib/WineTestBot/LogUtils.pm
@@ -327,7 +327,7 @@ sub GetReportLineCategory($)
   if ($Line =~ /: Test (?:failed|succeeded inside todo block): / or
       $Line =~ /Fatal: test .* does not exist/ or
       $Line =~ / done \(258\)/ or
-      $Line =~ /: unhandled exception [0-9a-fA-F]{8} at / or
+      $Line =~ /: unhandled exception [0-9a-fA-F]{8} (?:at|in) / or
       $Line =~ /^Unhandled exception: /)
   {
     return "error";
@@ -627,6 +627,13 @@ sub ParseWineTestReport($$$)
       _CheckUnit($LogInfo, $Cur, $Unit, "unhandled exception");
       $Cur->{LineFailures}++;
     }
+    elsif (($Cur->{Unit} ne "" and
+            $Line =~ /($Cur->{UnitsRE}):\d+: unhandled exception [0-9a-fA-F]{8} in child process /) or
+           $Line =~ /^([_.a-z0-9]+):\d+: unhandled exception [0-9a-fA-F]{8} in child process /)
+    {
+      _CheckUnit($LogInfo, $Cur, $1, "child exception");
+      $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
            $Line =~ /^([0-9a-f]+):([_a-z0-9]+): \d+ tests? executed \((\d+) marked as todo, (\d+) failures?\), (\d+) skipped\./)
@@ -1054,6 +1061,8 @@ sub _GetLineKey($)
   or $Line =~ s/^(Unhandled exception: .* code) \(0x[0-9a-fA-F]{8,16}\)\.$/$1/
   # or the process id in Wine's exc_filter() lines
   or $Line =~ s/^[0-9a-f]+:([_a-z0-9]+: unhandled exception [0-9a-fA-F]{8} at )[0-9a-fA-F]{8,16}$/$1/
+  # or child process id
+  or $Line =~ s/^([_.a-z0-9]+:)\d+:( unhandled exception [0-9a-fA-F]{8} in child process )[0-9a-fA-F]{4}$/$1$2/
 
   # The exact amount of data printed does not change the error
   or $Line =~ s/^([_.a-z0-9-]+:[_a-z0-9]* prints too much data )\(\d+ bytes\)$/$1/;
-- 
2.20.1



More information about the wine-devel mailing list