Module: tools Branch: master Commit: c0be1870cb2a80620939ae364049686fba924854 URL: https://source.winehq.org/git/tools.git/?a=commit;h=c0be1870cb2a80620939ae36... Author: Francois Gouget <fgouget(a)codeweavers.com> Date: Tue Mar 17 00:02:47 2020 +0100 testbot/LogUtils: Handle child process crashes. 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(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- 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 57229bc..99c30e0 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/;