Module: tools
Branch: master
Commit: f3833ecc460d7ab17dd2051b14857faf0c106a0a
URL: https://source.winehq.org/git/tools.git/?a=commit;h=f3833ecc460d7ab17dd2051…
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);
Module: tools
Branch: master
Commit: c5d7bace65a2bf27a86f87f727d618f00640dc62
URL: https://source.winehq.org/git/tools.git/?a=commit;h=c5d7bace65a2bf27a86f87f…
Author: Francois Gouget <fgouget(a)codeweavers.com>
Date: Tue Apr 6 16:24:55 2021 +0200
testbot/LogUtils: Fix handling of failures before the first test unit.
This is necessary to be able to account for errors found in the "dll
versions" block.
Signed-off-by: Francois Gouget <fgouget(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
testbot/lib/WineTestBot/LogUtils.pm | 60 ++++++++++++++++++++-----------------
1 file changed, 32 insertions(+), 28 deletions(-)
diff --git a/testbot/lib/WineTestBot/LogUtils.pm b/testbot/lib/WineTestBot/LogUtils.pm
index 5f7046c..dde4104 100644
--- a/testbot/lib/WineTestBot/LogUtils.pm
+++ b/testbot/lib/WineTestBot/LogUtils.pm
@@ -407,7 +407,7 @@ sub _CloseTestUnit($$$)
my ($LogInfo, $Cur, $Last) = @_;
# Verify the summary lines
- if (!$Cur->{IsBroken})
+ if ($Cur->{Dll} ne "" and !$Cur->{IsBroken})
{
_CheckSummaryCounter($LogInfo, $Cur, "Failures", "failure");
_CheckSummaryCounter($LogInfo, $Cur, "Todos", "todo");
@@ -418,37 +418,41 @@ sub _CloseTestUnit($$$)
# so only use them as a fallback.
$Cur->{LineFailures} ||= $Cur->{SummaryFailures};
- if ($Cur->{UnitSize} > $MaxUnitSize)
+ if ($Cur->{Dll} ne "")
{
- _AddExtra($LogInfo, "prints too much data ($Cur->{UnitSize} bytes)", $Cur);
- }
- if (!$Cur->{IsBroken} and defined $Cur->{Rc})
- {
- # Check the exit code, particularly against failures reported
- # after the 'done' line (e.g. by subprocesses).
- if ($Cur->{LineFailures} != 0 and $Cur->{Rc} == 0)
+ if ($Cur->{UnitSize} > $MaxUnitSize)
{
- _AddExtra($LogInfo, "returned success despite having failures", $Cur);
+ _AddExtra($LogInfo, "prints too much data ($Cur->{UnitSize} bytes)", $Cur);
}
- elsif (!$LogInfo->{IsWineTest} and $Cur->{Rc} != 0)
+ if (!$Cur->{IsBroken} and defined $Cur->{Rc})
{
- _AddExtra($LogInfo, "The test returned a non-zero exit code");
- }
- elsif ($LogInfo->{IsWineTest} and $Cur->{LineFailures} == 0 and $Cur->{Rc} != 0)
- {
- _AddExtra($LogInfo, "returned a non-zero exit code despite reporting no failures", $Cur);
- }
- }
- # For executables TestLauncher's done line may not be recognizable.
- elsif ($LogInfo->{IsWineTest} and !defined $Cur->{Rc})
- {
- if (!$Last)
- {
- _AddExtra($LogInfo, "has no done line (or it is garbled)", $Cur);
+ # Check the exit code, particularly against failures reported
+ # after the 'done' line (e.g. by subprocesses).
+ if ($Cur->{LineFailures} != 0 and $Cur->{Rc} == 0)
+ {
+ _AddExtra($LogInfo, "returned success despite having failures", $Cur);
+ }
+ elsif (!$LogInfo->{IsWineTest} and $Cur->{Rc} != 0)
+ {
+ _AddExtra($LogInfo, "The test returned a non-zero exit code");
+ }
+ elsif ($LogInfo->{IsWineTest} and $Cur->{LineFailures} == 0 and
+ $Cur->{Rc} != 0)
+ {
+ _AddExtra($LogInfo, "returned a non-zero exit code despite reporting no failures", $Cur);
+ }
}
- elsif ($Last and !$LogInfo->{TaskTimedOut})
+ # For executables TestLauncher's done line may not be recognizable.
+ elsif ($LogInfo->{IsWineTest} and !defined $Cur->{Rc})
{
- _AddExtra($LogInfo, "The report seems to have been truncated");
+ if (!$Last)
+ {
+ _AddExtra($LogInfo, "has no done line (or it is garbled)", $Cur);
+ }
+ elsif ($Last and !$LogInfo->{TaskTimedOut})
+ {
+ _AddExtra($LogInfo, "The report seems to have been truncated");
+ }
}
}
@@ -548,7 +552,7 @@ sub ParseWineTestReport($$$)
my ($Dll, $Unit, $Type) = ($1, $2, $3);
# Close the previous test unit
- _CloseTestUnit($LogInfo, $Cur, 0) if ($Cur->{Dll} ne "");
+ _CloseTestUnit($LogInfo, $Cur, 0);
$Cur = _NewCurrentUnit($Dll, $Unit);
$LogInfo->{TestUnitCount}++;
@@ -689,7 +693,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) if ($Cur->{Dll} ne "");
+ _CloseTestUnit($LogInfo, $Cur, 0);
# 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: 2ac989fd8548d6546061d0e26cda0e33f8b3c037
URL: https://source.winehq.org/git/tools.git/?a=commit;h=2ac989fd8548d6546061d0e…
Author: Francois Gouget <fgouget(a)codeweavers.com>
Date: Tue Apr 6 11:24:26 2021 +0200
testbot/PatchUtils: Document the make_* scripts indirect impacts.
Signed-off-by: Francois Gouget <fgouget(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
testbot/lib/WineTestBot/PatchUtils.pm | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/testbot/lib/WineTestBot/PatchUtils.pm b/testbot/lib/WineTestBot/PatchUtils.pm
index 7ae58d3..a7d33f6 100644
--- a/testbot/lib/WineTestBot/PatchUtils.pm
+++ b/testbot/lib/WineTestBot/PatchUtils.pm
@@ -443,6 +443,8 @@ sub GetPatchImpacts($)
$Path = $1;
$Impacts->{BuildRoot} = $Impacts->{MakeRequests} = 1;
$Impacts->{PatchedRoot} = $Impacts->{IsWinePatch} = 1;
+ # Note that make_requests essentially impacts every test but these
+ # indirect impacts are ignored (use test=all if it really matters).
}
elsif ($Line =~ m=^--- \w+/(dlls/dsound/make_fir)$=)
{
@@ -461,18 +463,30 @@ sub GetPatchImpacts($)
$Path = $1;
$Impacts->{BuildRoot} = $Impacts->{MakeOpenGL} = 1;
$Impacts->{PatchedRoot} = $Impacts->{IsWinePatch} = 1;
+ # Note that make_opengl impacts other dlls through header changes so
+ # it could make sense for the TestBot to rerun the corresponding tests
+ # when test=module. But that would require either hardcoding the list
+ # of impacted modules, or detecting changed source files (and thus the
+ # list of tests to run) at build time which is incompatible with the
+ # current architecture.
+ # So these indirect impacts are ignored for now. A workaround is to
+ # use test=all.
}
elsif ($Line =~ m=^--- \w+/(dlls/winevulkan/make_vulkan)$=)
{
$Path = $1;
$Impacts->{BuildRoot} = $Impacts->{MakeVulkan} = 1;
$Impacts->{PatchedRoot} = $Impacts->{IsWinePatch} = 1;
+ # Note that make_vulkan impacts other dlls through header changes.
+ # See the make_opengl comment.
}
elsif ($Line =~ m=^--- \w+/(tools/make_unicode)$=)
{
$Path = $1;
$Impacts->{BuildRoot} = $Impacts->{MakeUnicode} = 1;
$Impacts->{PatchedRoot} = $Impacts->{IsWinePatch} = 1;
+ # Note that make_unicode changes the source for many dlls.
+ # See the make_opengl comment.
}
elsif ($Line =~ m=^--- /dev/null$=)
{
Module: wine
Branch: master
Commit: 8d076bc5e46cc11ec94db631e7c608f62d75cee2
URL: https://source.winehq.org/git/wine.git/?a=commit;h=8d076bc5e46cc11ec94db631…
Author: Gabriel Ivăncescu <gabrielopcode(a)gmail.com>
Date: Mon Apr 5 16:24:43 2021 +0200
conhost: Fix line wrapping around when ENABLE_VIRTUAL_TERMINAL_PROCESSING is set.
Remember the fact we completed the entire line but normalize the cursor
otherwise. A newline is delayed so it wraps when writing a new character
if the cursor is outside the width.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode(a)gmail.com>
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
programs/conhost/conhost.c | 36 +++++++++++++-------
programs/conhost/conhost.h | 5 +++
programs/conhost/tests/tty.c | 80 +++++++++++++++++++++++++++++++++++++++++---
programs/conhost/window.c | 6 ++--
4 files changed, 107 insertions(+), 20 deletions(-)
Diff: https://source.winehq.org/git/wine.git/?a=commitdiff;h=8d076bc5e46cc11ec94d…