I have been reviewing the TestBot and GitLab CI test results for the
merged MRs. While doing that I updated the TestBot's known failures list
(https://testbot.winehq.org/FailuresList.pl) in order to drive down the
false positive rate.
Incidentally I also collected the list of test units causing false
positives, so I'll start with that. Specifically, here are the bugs to
fix to help the GitLab CI:
* Bug 53433 - mmdevapi:capture - impacted 18 MRs
* Bug 54064 - ntdll:threadpool - impacted 15 MRs
* Bug 54078 - ntdll:pipe - impacted 11 MRs
* Bug 54140 - mmdevapi:render - impacted 5 MRs
* Bug 54005 - ole32:clipboard - impacted 5 MRs
* Bug 54037 - user32:msg - impacted 5 MRs
* Bug 54074 - ws2_32:sock - impacted 5 MRs
I classified the TestBot / GitLab CI results as follows:
* False positive
Cases where the CI system incorrectly claimed the MR introduces new
failures. This is typically the case when the failures that are
already present in nightly WineTest results.
* Bad merge
MRs that break a test and got merged anyway.
* Collateral Damage from a bad merge
The false positives (aka collateral damage) caused by one of the bad
merges above.
* Outside interference
This identifies false positives that are not random and intrinsic to
the test but that result from change outside the Wine infrastructure,
for instance certificates that expire, or configuration changes to
servers that break the tests that depend on it.
Of those the only ones that a CI can really avoid are the first type,
aka "False positive". So I calculated the corresponding weekly rate:
Adjusted False Positive rate
Week | TestBot | GitLab CI
2022-11-14 | 21.9% | 8.3%
2022-11-21 | 8.0% | 21.6%
2022-11-28 | 14.7% | 28.4%
2022-12-05 | 8.5% | 24.5%
2022-12-12 | 0.0% | 20.0%
Note that the TestBot's 8% rate for the 11-21 week is not representative
because Wine was broken that week (collateral damage) which prevented
the tests from running in Wine, and thus from contributing real "false
positives". Also the 12-12 week is still incomplete obviously.
Even so I think his shows the TestBot is improving.
Here's a list of the incidents for the weeks above:
* 11-14 An external certificate revocation issue caused crypt32:cert to
fail systematically. This impacted 14 merge requests and was fixed in
MR1360.
* 11-17 MR!1399 got merged despite the TestBot detecting that it
prevented 32-bit Wine tests from running to completion. This impacted
39 merge requests. I could have reduced that number if I had been
faster to reconfigure the TestBot to stop running the full 32-bit Wine
test suite. This was fixed in MR!1524.
* 11-17 MR!1398 got merged despite the TestBot detecting that it broke
ntoskrnl.exe:ntoskrnl on Windows 7. This was fixed in MR!1803.
* 11-22 MR!1495 got merged despite the TestBot detecting that it broke
vbscript:run on Windows *. I don't have a record of the impacted MRs
or of when it was fixed.
* 11-23 The b00a831d direct commit broke kernel32:process in Wine. This
got fixed since.
* 12-07 MR!1732 got merged despite the TestBot detecting that it broke
taskschd:scheduler on Windows *. I immediately added a known failure
entry and no MR got impacted. This was fixed in MR!1736.
If not filtering out the failures caused by these incidents, the false
positive rate is:
Raw False Positive rate
Week | TestBot | GitLab CI
2022-11-14 | 52.1% | 27.1%
2022-11-21 | 50.0% | 29.5%
2022-11-28 | 20.0% | 33.7%
2022-12-05 | 19.1% | 57.4%
2022-12-12 | 0.0% | 20.0%
I think that also shows that the TestBot is improving.
I have attached the raw data I collected and shell snippets to
extract various statistics (failures-mr.txt) as well as a spreadsheet
import (failures.xls).
--
Francois Gouget <fgouget(a)codeweavers.com>
Binary packages for various distributions will be available from:
https://www.winehq.org/download
Summary since last release
* Rebased to current wine 8.9 (499 patches are applied to wine vanilla)
In the spirit of testing, Wine Staging is now going to carry the latest
vk3d3.
Upstreamed (Either directly from staging or fixed with a similar patch).
* ntdll: Handle NULL process handle in MapViewOfFile3().
* ntdll: Pass allocation type to map_view().
* ntdll: Support MEM_RESERVE_PLACEHOLDER in NtAllocateVirtualMemoryEx().
* ntdll: Support MEM_REPLACE_PLACEHOLDER in map_view().
* ntdll: Support MEM_REPLACE_PLACEHOLDER in NtAllocateVirtualMemoryEx().
* ntdll: Support MEM_PRESERVE_PLACEHOLDER in NtFreeVirtualMemory().
* ntdll/tests: Add more tests for placeholders.
Added:
* vkd3d-latest
Updated:
* ntdll-Placeholders
* ntdll-ForceBottomUpAlloc
Where can you help
* Run Steam/Battle.net/GOG/UPlay/Epic
* Test your favorite game.
* Test your favorite applications.
* Improve staging patches and get them accepted upstream.
* Suggest patches to be included in staging.
As always, if you find a bug, please report it via
https://bugs.winehq.org
Best Regards
Alistair.
Hi all,
We're planning to release vkd3d 1.8 on June 21, four weeks from now. As
we're nearing the release date, it will become increasingly harder to
make major code changes.
Now is a good time to:
- Test applications for any regressions.
- Review any API changes since the previous release.
- Verify the tests pass on your hardware.
- Review and improve the documentation.
The planned release date for the release following vkd3d 1.8 is
currently late September.
Regards,
Henri
Wine-CE (Chimera Edition, Cross-architecture Emulator) is a compatibility layer capable of running Windows applications on Cross-architecture paltform of Linux. It is base on Wine Project and Qemu Project
Wine-CE 8.8 released, Support Native Mode and Emulate Mode, It Can be running at x86_64, AArch64, RISCV64
What's Native Mode
For example, If guest is i386 or x86_64, host is x86_64, It will be running without binary-translator
What's Emulate Mode
For example, If guest is i386 or x86_64, host is riscv64 or aarch64, It will be running with binary-translator
Project Address:
https://gitlab.com/wine-ce/wine-ce
It can be a pain to install all the needed development packages to build
BOTH the 32-bit and 64-bit versions of Wine for the old-style
Windows-on-Windows mode. So here's what is hopefully the simplest way to
do so on distributions based on Debian and openSUSE [1].
wget https://gitlab.winehq.org/fgouget/wt-daily/-/raw/master/wt-install-dev
sudo sh ./wt-install-dev
Then build Wine normally, no containers or VMs needed. So assuming you
have the source in wine, just run:
mkdir wow32 wow64
cd wow64 && ../wine/configure --enable-win64 && make
cd ../wow32 && ../wine/configure --with-wine64=../wow64 && make
Of course you're also all set for builds using the new WoW approach:
cd wine && ./configure --enable-archs=i386,x86_64 && make
[1] More specifically this has been tested on:
Debian 11 (bullseye), 12 (bookworm)
Elementary OS 7 Horus (stable and unstable)
openSUSE Leap 15.4, Tumbleweed
Pop!_OS 22.04
Ubuntu 22.04.2 LTS, 23.04
Patches to extend support to other distributions are welcome.
--
Francois Gouget <fgouget(a)free.fr> http://fgouget.free.fr/
In theory, theory and practice are the same, but in practice they're different.
Binary packages for various distributions will be available from:
https://www.winehq.org/download
Summary since last release
* Rebased to current wine 8.8 (494 patches are applied to wine vanilla)
Upstreamed (Either directly from staging or fixed with a similar patch).
* ntdll/tests: Add test for file attributes of files with names
beginning with a dot.
* ntdll: Do not open-code hidden file handling in get_dir_data_entry.
* ntdll: Handle hidden file names inside get_file_info instead of after it.
* ntdll: Only infer hidden attribute from file name if xattr is not present.
* ntdll: Set xattr in NtCreateFile if inferred and requested attributes
don't match.
* ntdll/tests: Increase margins in timer merging tests.
* findstr: add basic functionality (also support literal search option
e.g. c:/"foo bar")
* tasklist.exe: add minimal functionality
* winemenubuilder: Blacklist desktop integration for certain associations
* ntdll/tests: Add tests for freeing a part of view.
* kernelbase: Validate nonzero size for MEM_RELEASE in VirtualFreeEx().
* ntdll: Fix size validation in NtFreeVirtualMemory().
* ntdll: Fully support unaligned views in free ranges management.
* ntdll: Factor out some view manipulation functions.
* ntdll: Support partial view release in NtFreeVirtualMemory().
* ntdll: Add logging for free ranges.
Added:
* none
Updated:
* None
Where can you help
* Run Steam/Battle.net/GOG/UPlay/Epic
* Test your favorite game.
* Test your favorite applications.
* Improve staging patches and get them accepted upstream.
* Suggest patches to be included in staging.
As always, if you find a bug, please report it via
https://bugs.winehq.org
Best Regards
Alistair.