https://bugs.winehq.org/show_bug.cgi?id=43944
Bug ID: 43944 Summary: msi/action tests fail on armv7l Product: Wine Version: 2.19 Hardware: arm OS: Linux Status: NEW Keywords: download, source, testcase Severity: normal Priority: P2 Component: msi Assignee: wine-bugs@winehq.org Reporter: austinenglish@gmail.com CC: hans@meelstraat.net, julliard@winehq.org Distribution: Debian
Created attachment 59583 --> https://bugs.winehq.org/attachment.cgi?id=59583 failing tests
chronos@localhost ~/Downloads $ grep -c 'Test failed' msi.txt 165
E.g.,: action.c:2903: Test failed: File not installed action.c:2904: Test failed: Directory not created action.c:3014: Test failed: File not installed action.c:3015: Test failed: Directory not created action.c:3185: Test failed: File not installed action.c:3186: Test failed: Directory not created action.c:3282: Test failed: File not installed action.c:3283: Test failed: Directory not created action.c:3418: Test failed: File not installed action.c:3419: Test failed: Directory not created action.c:3455: Test failed: File not installed action.c:3456: Test failed: Directory not created
I'll attach the full output.
wine-2.19-154-g17d43ef54e
https://bugs.winehq.org/show_bug.cgi?id=43944
--- Comment #1 from Hans Leidekker hans@meelstraat.net --- Can you attach a +msi trace?
https://bugs.winehq.org/show_bug.cgi?id=43944
--- Comment #2 from Austin English austinenglish@gmail.com --- Created attachment 59590 --> https://bugs.winehq.org/attachment.cgi?id=59590 +msi trace, xzip'ed
https://bugs.winehq.org/show_bug.cgi?id=43944
--- Comment #3 from Hans Leidekker hans@meelstraat.net --- ARM build: trace:msi:set_target_path file L"maximus" resolves to L"C:\msitest\maximus"
Intel build: trace:msi:set_target_path file L"maximus" resolves to L"C:\Program Files\msitest\maximus"
We don't handle the ARM platform when resolving the ProgramFilesFolder property. The question is whether we should. The documentation doesn't mention support for ARM or ARM64.
https://bugs.winehq.org/show_bug.cgi?id=43944
--- Comment #4 from Austin English austinenglish@gmail.com --- (In reply to Hans Leidekker from comment #3)
ARM build: trace:msi:set_target_path file L"maximus" resolves to L"C:\msitest\maximus"
Intel build: trace:msi:set_target_path file L"maximus" resolves to L"C:\Program Files\msitest\maximus"
We don't handle the ARM platform when resolving the ProgramFilesFolder property. The question is whether we should. The documentation doesn't mention support for ARM or ARM64.
Guess we need someone with windows/arm to run the msi tests to see what Windows does (I don't have a windows arm machine available).
https://bugs.winehq.org/show_bug.cgi?id=43944
André H. nerv@dawncrow.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |nerv@dawncrow.de
--- Comment #5 from André H. nerv@dawncrow.de --- here: 0008:action: 2460 tests executed (18 marked as todo, 185 failures), 0 skipped.
https://bugs.winehq.org/show_bug.cgi?id=43944
--- Comment #6 from André H. nerv@dawncrow.de --- (In reply to Hans Leidekker from comment #3)
ARM build: trace:msi:set_target_path file L"maximus" resolves to L"C:\msitest\maximus"
Intel build: trace:msi:set_target_path file L"maximus" resolves to L"C:\Program Files\msitest\maximus"
We don't handle the ARM platform when resolving the ProgramFilesFolder property. The question is whether we should. The documentation doesn't mention support for ARM or ARM64.
ARM would be reasonable, just ARM64 is questionable because "Program Files (x86)" won't exist
https://bugs.winehq.org/show_bug.cgi?id=43944
André H. nerv@dawncrow.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |wine@martin.st
https://bugs.winehq.org/show_bug.cgi?id=43944
--- Comment #7 from Martin Storsjö martin@martin.st --- (In reply to André H. from comment #6)
ARM would be reasonable, just ARM64 is questionable because "Program Files (x86)" won't exist
FWIW, Windows 10 on ARM64 right now has got three Program Files directories; the plain "Program Files" whih has got ARM64 binaries, then "Program Files (Arm)" with ARM32 binaries, and finally "Program Files (x86)" with i386 binaries.
I tested building and running dlls/msi/tests/action, and got 113 test failures. Haven't yet dug in to see what issues/differences it actually boils down to.
https://bugs.winehq.org/show_bug.cgi?id=43944
--- Comment #8 from Austin English austinenglish@gmail.com --- (In reply to Martin Storsjö from comment #7)
(In reply to André H. from comment #6)
ARM would be reasonable, just ARM64 is questionable because "Program Files (x86)" won't exist
FWIW, Windows 10 on ARM64 right now has got three Program Files directories; the plain "Program Files" whih has got ARM64 binaries, then "Program Files (Arm)" with ARM32 binaries, and finally "Program Files (x86)" with i386 binaries.
I tested building and running dlls/msi/tests/action, and got 113 test failures. Haven't yet dug in to see what issues/differences it actually boils down to.
Are you cross compiling that with msvc? I tried using Stefan's scripts but never got it to build for me. Could you share your project stuff on github maybe? :)
https://bugs.winehq.org/show_bug.cgi?id=43944
--- Comment #9 from Martin Storsjö martin@martin.st --- (In reply to Austin English from comment #8)
Are you cross compiling that with msvc?
Yes, and I'm looking into supporting compiling it with llvm-mingw (a setup with clang+lld and mingw-w64, supporting both armv7 and aarch64).
I tried using Stefan's scripts but never got it to build for me. Could you share your project stuff on github maybe? :)
It's not much project stuff to share per se... For building with MSVC, I'm following some instructions I saw somewhere (in the wiki?) a few years ago; I can't find it right now, but it's basically like this:
- Copy the wine/include/wine subdirectory to a separate directory (to avoid adding the rest of the wine headers to the include path, when adding the surrounding directory to the include path) - Compile one individual test like this: cl -I/path/to/wine-test-include -DSTANDALONE -D_X86_ -D__ms_va_list=va_list -D__ms_va_start=va_start -D__ms_va_end=va_end -Dinline=__inline action.c
For arm64, I'm defining -D_ARM64_ instead of -D_X86_.
https://bugs.winehq.org/show_bug.cgi?id=43944
--- Comment #10 from Martin Storsjö martin@martin.st --- I forgot to mention btw, when compiling this particular test with msvc, I had to do a bunch of minimal renamings, with all symbols like INSTALLPROPERTY_PACKAGENAMEA changed to remove the -A suffix.
https://bugs.winehq.org/show_bug.cgi?id=43944
--- Comment #11 from André H. nerv@dawncrow.de --- (In reply to Martin Storsjö from comment #9)
It's not much project stuff to share per se... For building with MSVC, I'm following some instructions I saw somewhere (in the wiki?) a few years ago; I can't find it right now, but it's basically like this:
Not sure how well this works these days, but there is: tools/winapi/msvcmaker
https://bugs.winehq.org/show_bug.cgi?id=43944
tokktokk fdsfgs@krutt.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |fdsfgs@krutt.org
https://bugs.winehq.org/show_bug.cgi?id=43944
--- Comment #12 from Austin English austinenglish@gmail.com --- Haven't gotten my surface RT running tests yet (will take another look soon), but still in wine-5.7-301-ga897d858e4.
https://bugs.winehq.org/show_bug.cgi?id=43944
--- Comment #13 from Austin English austinenglish@gmail.com --- (In reply to Austin English from comment #12)
Haven't gotten my surface RT running tests yet (will take another look soon), but still in wine-5.7-301-ga897d858e4.
action.c:6540: Subtest custom action.c:2662: Tests skipped: process is limited action.c:3051: Tests skipped: process is limited action.c:3286: Tests skipped: process is limited action.c:3470: Tests skipped: process is limited action.c:3566: Tests skipped: process is limited action.c:3702: Tests skipped: process is limited action.c:4297: Tests skipped: process is limited action.c:4495: Tests skipped: process is limited action.c:4630: Tests skipped: process is limited action.c:4776: Tests skipped: process is limited action.c:4819: Tests skipped: process is limited action.c:4987: Tests skipped: process is limited action.c:5100: Tests skipped: process is limited action.c:5157: Tests skipped: Not enough rights to perform tests action.c:5272: Tests skipped: process is limited action.c:5346: Tests skipped: process is limited action.c:5422: Tests skipped: process is limited action.c:5470: Tests skipped: process is limited action.c:5521: Tests skipped: process is limited action.c:5575: Tests skipped: process is limited action.c:5658: Tests skipped: process is limited action.c:5708: Tests skipped: process is limited action.c:5757: Tests skipped: process is limited action.c:5841: Tests skipped: process is limited action.c:5891: Tests skipped: process is limited action.c:5935: Tests skipped: process is limited action.c:5996: Tests skipped: process is limited action.c:6061: Tests skipped: process is limited action.c:6113: Tests skipped: process is limited action.c:6239: Tests skipped: process is limited action.c:6338: Tests skipped: process is limited action.c:6502: Tests skipped: process is limited 0ed8:action: 2 tests executed (0 marked as todo, 0 failures), 32 skipped.
I also ran the other msi tests, all pass except package, I filed bug 49166 for that.
https://bugs.winehq.org/show_bug.cgi?id=43944
--- Comment #14 from Hans Leidekker hans@meelstraat.net --- Is there a way to run these tests with admin rights on WinRT?
https://bugs.winehq.org/show_bug.cgi?id=43944
--- Comment #15 from Austin English austinenglish@gmail.com --- (In reply to Hans Leidekker from comment #14)
Is there a way to run these tests with admin rights on WinRT?
msi:action start dlls/msi/tests/action.c - action.c:6540: Subtest custom action.c:3013: Tests skipped: 64-bit RegisterProduct tests 09a8:action: 3749 tests executed (0 marked as todo, 0 failures), 1 skipped. msi:action:09a8 done (0) in 82s msi:automation start dlls/msi/tests/automation.c - 0ae8:automation: 1380 tests executed (0 marked as todo, 0 failures), 0 skipped. msi:automation:0ae8 done (0) in 2s msi:db start dlls/msi/tests/db.c - 099c:db: 4115 tests executed (0 marked as todo, 0 failures), 0 skipped. msi:db:099c done (0) in 5s msi:format start dlls/msi/tests/format.c - 0a58:format: 1005 tests executed (0 marked as todo, 0 failures), 0 skipped. msi:format:0a58 done (0) in 1s msi:install start dlls/msi/tests/install.c - install.c:6239: Subtest custom install.c:4648: Tests skipped: Run in interactive mode to run source path tests. install.c:4751: Tests skipped: broken result install.c:5597: Test failed: Expected ERROR_SUCCESS, got 1633 install.c:5598: Test failed: file does not exist install.c:5599: Test failed: directory does not exist install.c:5605: Test failed: Expected ERROR_INSTALL_LANGUAGE_UNSUPPORTED, got 1633 install.c:5611: Test failed: Expected ERROR_INSTALL_LANGUAGE_UNSUPPORTED, got 1633 install.c:5617: Test failed: Expected ERROR_SUCCESS, got 1633 install.c:5618: Test failed: file does not exist install.c:5619: Test failed: directory does not exist install.c:5643: Test failed: Expected ERROR_INSTALL_LANGUAGE_UNSUPPORTED, got 1633 install.c:5652: Test failed: Expected ERROR_SUCCESS, got 1633 install.c:5653: Test failed: file does not exist install.c:5654: Test failed: directory does not exist install.c:5659: Test failed: Expected ERROR_SUCCESS, got 1633 install.c:5660: Test failed: file does not exist install.c:5661: Test failed: directory does not exist install.c:5730: Test failed: Expected ERROR_SUCCESS, got 1633 install.c:5731: Test failed: file does not exist install.c:5732: Test failed: directory does not exist install.c:5738: Test failed: Expected ERROR_SUCCESS, got 1633 install.c:5739: Test failed: file does not exist install.c:5740: Test failed: directory does not exist install.c:5813: Tests skipped: this test must be run on 64-bit install.c:6149: Tests skipped: test must be run on WoW64 0c48:install: 6989 tests executed (0 marked as todo, 21 failures), 4 skipped. msi:install:0c48 done (21) in 76s msi:msi start dlls/msi/tests/msi.c - 0be0:msi: 5273 tests executed (0 marked as todo, 0 failures), 0 skipped. msi:msi:0be0 done (0) in 35s msi:package start dlls/msi/tests/package.c - package.c:1279: OutOfNoRbDiskSpace = "0" package.c:5689: VersionDatabase = 100 package.c:5695: VersionMsi = 5.00 package.c:5701: Date = 5/16/2020 package.c:5707: Time = 13:38:34 package.c:5713: PackageCode = {913B8D18-FBB6-4CAC-A239-C74C11E3FA74} package.c:5719: ComputerName = SURFACERT package.c:5747: MsiNetAssemblySupport "4.0.30319.17929" package.c:9330: Tests skipped: interactive ControlEvent tests 0140:package: 5212 tests executed (0 marked as todo, 0 failures), 1 skipped. msi:package:0140 done (0) in 18s msi:patch start dlls/msi/tests/patch.c - 036c:patch: 287 tests executed (0 marked as todo, 0 failures), 0 skipped. msi:patch:036c done (0) in 6s msi:record start dlls/msi/tests/record.c - 05d4:record: 221 tests executed (0 marked as todo, 0 failures), 0 skipped. msi:record:05d4 done (0) in 0s msi:source start dlls/msi/tests/source.c - source.c:3312: username: surfacert\User 0fe0:source: 788 tests executed (0 marked as todo, 0 failures), 0 skipped. msi:source:0fe0 done (0) in 0s msi:suminfo start dlls/msi/tests/suminfo.c - 08bc:suminfo: 93 tests executed (0 marked as todo, 0 failures), 0 skipped. msi:suminfo:08bc done (0) in 0s