Module: tools Branch: master Commit: f3833ecc460d7ab17dd2051b14857faf0c106a0a URL: https://source.winehq.org/git/tools.git/?a=commit;h=f3833ecc460d7ab17dd2051b... Author: Francois Gouget <fgouget(a)codeweavers.com> Date: Tue Apr 6 16:24:58 2021 +0200 testbot/LogUtils: Detect and report the dll version errors. There should be no native dll while running the tests in Wine. Also all expected CreateProcess() errors have explanations. So report the others as failures. This also relaxes the GetReportLineCategory() regexps a bit to match the new 'version error' lines. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48062 Signed-off-by: Francois Gouget <fgouget(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- testbot/lib/WineTestBot/LogUtils.pm | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/testbot/lib/WineTestBot/LogUtils.pm b/testbot/lib/WineTestBot/LogUtils.pm index dde4104..e6e89f5 100644 --- a/testbot/lib/WineTestBot/LogUtils.pm +++ b/testbot/lib/WineTestBot/LogUtils.pm @@ -325,8 +325,8 @@ sub GetReportLineCategory($) { return "skip"; } - if ($Line =~ /^ \w+=dll is (?:missing|native|a stub)/ or - $Line =~ /^ \w+=(?:load error|version error \d+|version not (?:found|present))$/ or + if ($Line =~ /^ \w+=dll is (?:missing|a stub)/ or + $Line =~ /^ \w+=(?:version error \d+|version not (?:found|present))/ or $Line =~ /^[_.a-z0-9-]+:[_a-z0-9]* start / or $Line =~ /: this is the last test seen before the exception/) { @@ -538,6 +538,7 @@ sub ParseWineTestReport($$$) } my $LineNo = 0; + my $InDlls = 0; my $Cur = _NewCurrentUnit("", ""); foreach my $Line (<$LogFile>) { @@ -547,7 +548,21 @@ sub ParseWineTestReport($$$) chomp $Line; $Line =~ s/\r+$//; - if ($Line =~ m%^([_.a-z0-9-]+):([_a-z0-9]*) (start|skipped) (?:-|[/_.a-z0-9-]+)%) + if ($InDlls == 0 and $Line =~ /^Dll info:$/) + { + $InDlls = 1; + } + elsif ($InDlls == 1 and + $Line =~ /^\s+\S+=(?:dll is native|load error \d+)$/) + { + _AddReportError($LogInfo, $Cur, $LineNo, $Line); + $Cur->{LineFailures}++; + } + elsif ($Line =~ /^Test output:$/) + { + $InDlls = 2; + } + elsif ($Line =~ m%^([_.a-z0-9-]+):([_a-z0-9]*) (start|skipped) (?:-|[/_.a-z0-9-]+)%) { my ($Dll, $Unit, $Type) = ($1, $2, $3);