Module: vkd3d
Branch: master
Commit: fc652d2b27d39f8e63c073682763f51619f5fcb2
URL: https://gitlab.winehq.org/wine/vkd3d/-/commit/fc652d2b27d39f8e63c073682763f…
Author: Conor McCarthy <cmccarthy(a)codeweavers.com>
Date: Fri Nov 18 13:43:30 2022 +1000
tests: Test a typed UAV buffer in test_atomic_instructions().
Until vkd3d-shader is patched, an atomic op on a typed buffer where
StorageImageReadWithoutFormat is available will cause SPIR-V validation
failure, and assertion in Mesa debug builds, because the image will be
declared with Unknown format.
---
tests/d3d12.c | 129 ++++++++++++++++++++++++++++++++++++++--------------------
1 file changed, 85 insertions(+), 44 deletions(-)
Module: tools
Branch: master
Commit: 135c6f146466e56c4ed7821f91e380664598ee97
URL: https://gitlab.winehq.org/winehq/tools/-/commit/135c6f146466e56c4ed7821f91e…
Author: Francois Gouget <fgouget(a)codeweavers.com>
Date: Wed Nov 2 16:53:58 2022 +0100
testbot/TestWTBS: Issue an error if $OnlyCompletePatchSets is set.
The test suite needs to be able to check the handling of all parts of a
patchset and is thus incompatible with this setting.
The error is only issued once and the impacted jobs are skipped to avoid
duplicate errors.
---
testbot/tests/TestWTBS | 57 ++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 55 insertions(+), 2 deletions(-)
diff --git a/testbot/tests/TestWTBS b/testbot/tests/TestWTBS
index f7d4fcfb..33074a82 100755
--- a/testbot/tests/TestWTBS
+++ b/testbot/tests/TestWTBS
@@ -259,11 +259,12 @@ sub SkipCheck($)
return (defined $Value and $Value eq "ignore");
}
-sub LoadTestInfo($)
+sub LoadRawTestInfo($)
{
my ($FileName) = @_;
my $RawInfo;
+ my $SectionCount = 0;
if (open(my $TestFh, "<", $FileName))
{
parser: while (my $Line = <$TestFh>)
@@ -275,6 +276,7 @@ sub LoadTestInfo($)
{
# Patch series may have multiple TestWTBS sections, one per part.
# Only the last one counts.
+ $SectionCount++;
$RawInfo = {
LogName => basename($FileName),
LogPath => $FileName,
@@ -297,6 +299,10 @@ sub LoadTestInfo($)
delete $RawInfo->{BadLog};
}
}
+ elsif ($Line eq "===== TestBot: Last patchset part =====")
+ {
+ $SectionCount = 0;
+ }
}
close($TestFh);
@@ -312,6 +318,35 @@ sub LoadTestInfo($)
return undef;
}
+ $RawInfo->{SectionCount} = $SectionCount;
+ return $RawInfo;
+}
+
+my $BrokenPatchSets;
+
+sub WarnBrokenPatchSets()
+{
+ if (!$BrokenPatchSets)
+ {
+ # The WTBS needs to be able to check how the TestBot handles patchset
+ # parts.
+ fail("\$OnlyCompletePatchSets=1 is incompatible with the WTBS\n");
+ $BrokenPatchSets = 1;
+ }
+}
+
+sub LoadTestInfo($)
+{
+ my ($FileName) = @_;
+
+ my $RawInfo = LoadRawTestInfo($FileName);
+ return undef if (!$RawInfo);
+ if ($RawInfo->{SectionCount} > 1)
+ {
+ WarnBrokenPatchSets();
+ return undef;
+ }
+
# Split up the information to jobs, tasks, etc.
my $TestInfo = {
webpatch => {}, patch => {}, job => {},
@@ -329,6 +364,10 @@ sub LoadTestInfo($)
$TestInfo->{$TaskType}->{$Field} = $RawInfo->{$Entry};
$HasTestInfo = 1;
}
+ elsif ($Entry eq "SectionCount")
+ {
+ # Ignore these
+ }
elsif ($Entry !~ /^(?:CurGroup|eCount|eNew|MsgGroups|MsgGroupNames|LineNo|LogName|LogPath)$/)
{
fail("$FileName: $Entry is not a valid property name");
@@ -1181,6 +1220,16 @@ sub CheckJobTree($;$)
$TestInfo = LoadTestInfo($Step->GetFullFileName());
return if (!$TestInfo);
}
+ elsif ($Step->FileType eq "patch")
+ {
+ my $RawInfo = LoadRawTestInfo($Step->GetFullFileName());
+ if ($RawInfo->{SectionCount} > 1)
+ {
+ WarnBrokenPatchSets();
+ print "...skipping job ". $Job->Id ." because \$OnlyCompletePatchSets is set\n";
+ return;
+ }
+ }
my $TaskType = $Step->Type eq "build" ? "build" :
$Step->FileType eq "patch" ? "wine" :
@@ -1412,7 +1461,11 @@ sub CheckPatch($$$)
}
my $PatchInfo = $TestInfo->{patch};
- if (CheckValue($PatchInfo->{Disposition}))
+ if ($Patch->Disposition =~ /^(?:Only test full series|Series is not a Wine patch)/)
+ {
+ WarnBrokenPatchSets();
+ }
+ elsif (CheckValue($PatchInfo->{Disposition}))
{
is($Patch->Disposition, $PatchInfo->{Disposition}, "Check Disposition for patch ". $Patch->Id .": ". $Patch->Subject);
}
Module: tools
Branch: master
Commit: 88b98f0927a572a5f0f9ebef392bcc1347b0d498
URL: https://gitlab.winehq.org/winehq/tools/-/commit/88b98f0927a572a5f0f9ebef392…
Author: Francois Gouget <fgouget(a)codeweavers.com>
Date: Thu Nov 3 03:13:50 2022 +0100
testbot: Tweak the disposition of patches when $OnlyCompletePatchSets is set.
This allows identifying patches which received special treatment due to
this setting.
---
testbot/lib/WineTestBot/Patches.pm | 5 ++++-
testbot/lib/WineTestBot/PendingPatchSets.pm | 4 +++-
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/testbot/lib/WineTestBot/Patches.pm b/testbot/lib/WineTestBot/Patches.pm
index c0768bea..866a9a60 100644
--- a/testbot/lib/WineTestBot/Patches.pm
+++ b/testbot/lib/WineTestBot/Patches.pm
@@ -230,7 +230,10 @@ sub Submit($$;$)
}
else
{
- $self->Disposition(($SubjectInfo->{PartNo} ? "Part is not" : "Not") ." a Wine patch");
+ $self->Disposition(($OnlyCompletePatchSets ? "Series is not" :
+ $SubjectInfo->{PartNo} ? "Part is not" :
+ "Not")
+ ." a Wine patch");
}
return undef;
}
diff --git a/testbot/lib/WineTestBot/PendingPatchSets.pm b/testbot/lib/WineTestBot/PendingPatchSets.pm
index 070a71df..06ba8886 100644
--- a/testbot/lib/WineTestBot/PendingPatchSets.pm
+++ b/testbot/lib/WineTestBot/PendingPatchSets.pm
@@ -108,7 +108,9 @@ sub SubmitSubset($$$)
{
# Skip over the intermediate patches to instead
# test the full patchset at once it is complete.
- return undef;
+ $FinalPatch->Disposition("Only test full series");
+ my ($_ErrKey, $_ErrProperty, $ErrMessage) = $self->Save();
+ return $ErrMessage;
}
my ($CombinedFile, $CombinedFileName) = OpenNewFile("$DataDir/staging", "_patchset.diff");