https://bugs.winehq.org/show_bug.cgi?id=39269
Bug ID: 39269 Summary: missing stub for downloading/installing .m2i file Product: Wine Version: 1.6.2 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: tom.iacoi.3000@gmail.com Distribution: ---
Created attachment 52348 --> https://bugs.winehq.org/attachment.cgi?id=52348 the logfile
on execution of http://downloadnavy.fxinteractive.com/wu_updates_private/FXWebPlayer.exe (a web helper installer for the game drm FX interactive) the error "file not found" is reported. error possibly caused for missing stub for the m2i format
https://bugs.winehq.org/show_bug.cgi?id=39269
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, Installer Status|UNCONFIRMED |NEW URL| |http://downloadnavy.fxinter | |active.com/wu_updates_priva | |te/FXWebPlayer.exe CC| |focht@gmx.net Component|-unknown |shell32 Summary|missing stub for |FX Interactive Webplayer |downloading/installing .m2i |fails to install, reporting |file |'File not found' | |(SHFileOperation FO_MOVE | |operation with wildcard | |source fails) Ever confirmed|0 |1
--- Comment #1 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming.
The download is completely fine.
Although "FIXME" stub messages could indicate some missing functionality in many cases it's not the culprit and they tend to be rather harmless.
--- snip --- $ WINEDEBUG=+tid,+seh,+relay,+wininet wine ./FXWebPlayer.exe >>log.txt 2>&1 ... 002d:Call KERNEL32.OutputDebugStringA(007e4c90 "[WuUpdater] 00% Descargando C:\users\focht\Temp\{02B22974-0252-4c1a-AC08-0346941DEA7A}\fxwebplayer.w2i: ") ret=0046a011 ... 002d:Call wininet.HttpOpenRequestA(00000002,00491dd4 "GET",005e9240 "wu_updates_public/fxwebplayer.w2i",00491dd8 "HTTP/1.0",00000000,004a48ec,04000000,00000000) ret=004729a3 ... 002d:trace:wininet:HTTP_HttpSendRequestW full request -> "GET /wu_updates_public/fxwebplayer.w2i HTTP/1.0\r\nAccept: */*\r\nHost: downloadnavy.fxinteractive.com\r\nUser-Agent: Mozilla/4.0 (compatible; )\r\n\r\n" ... 002d:trace:wininet:HTTP_GetResponseHeaders version [L"HTTP/1.1"] status code [L"200"] status text [L"OK"] ... 002d:trace:wininet:HTTP_GetResponseHeaders got line "Content-Length: 4189201", now interpreting ... 002d:Call KERNEL32.OutputDebugStringA(007e4c98 "Down...") ret=0046a068 ... 002d:Call KERNEL32.CreateFileA(005e8f68 "C:\users\focht\Temp\{02B22974-0252-4c1a-AC08-0346941DEA7A}\fxwebplayer.w2i",40000000,00000007,00000000,00000002,00000000,00000000) ret=0046a1fe 002d:Ret KERNEL32.CreateFileA() retval=000000b4 ret=0046a1fe ... 002d:Call wininet.InternetReadFile(00000003,005ea4e8,0000ffff,007e5c84) ret=00471f99 ... 002d:trace:wininet:netconn_read read 60496 bytes 002d:trace:wininet:HTTPREQ_Read retrieved 60496 bytes (4189201) 002d:trace:wininet:WININET_Release object 0x157808 refcount = 1 002d:trace:wininet:InternetReadFile -- TRUE (0) (bytes read: 60496) 002d:Ret wininet.InternetReadFile() retval=00000001 ret=00471f99 ... 002d:Call KERNEL32.OutputDebugStringA(007e4c88 "4189201 bytes a -0.00 KB/s\n") ret=0046a011 ... 002d:Call KERNEL32.CreateFileA(005e8f68 "C:\users\focht\Temp\{02B22974-0252-4c1a-AC08-0346941DEA7A}\fxwebplayer.w2i",80000000,00000003,00000000,00000003,08000000,00000000) ret=0046b983 002d:Ret KERNEL32.CreateFileA() retval=000000ac ret=0046b983 002d:Call KERNEL32.GetFileSize(000000ac,007e6550) ret=0046b995 002d:Ret KERNEL32.GetFileSize() retval=003fec11 ret=0046b995 002d:Call KERNEL32.SetFilePointer(000000ac,00000000,00000000,00000002) ret=0046abd5 002d:Ret KERNEL32.SetFilePointer() retval=003fec11 ret=0046abd5 002d:Call KERNEL32.SetFilePointer(000000ac,fffffffc,00000000,00000002) ret=0046abe6 002d:Ret KERNEL32.SetFilePointer() retval=003fec0d ret=0046abe6 002d:Call KERNEL32.ReadFile(000000ac,007e6504,00000004,007e64e8,00000000) ret=0046abfa 002d:Ret KERNEL32.ReadFile() retval=00000001 ret=0046abfa 002d:Call advapi32.CryptAcquireContextA(007e64d4,00000000,00491ecc "Microsoft Base Cryptographic Provider v1.0",00000001,00000000) ret=00473ef6 ... 002d:Ret advapi32.CryptAcquireContextA() retval=00000000 ret=00473ef6 002d:Call advapi32.CryptCreateHash(00000000,00008004,00000000,00000000,007e64dc) ret=00473f45 002d:Ret advapi32.CryptCreateHash() retval=00000000 ret=00473f45 ... 002d:Call advapi32.CryptVerifySignatureA(00000000,005ea4e8,00000080,00000000,00000000,00000000) ret=00473f8f 002d:Ret advapi32.CryptVerifySignatureA() retval=00000000 ret=00473f8f 002d:Call advapi32.CryptDestroyHash(00000000) ret=00473fa1 002d:Ret advapi32.CryptDestroyHash() retval=00000000 ret=00473fa1 002d:Call KERNEL32.GetLastError() ret=00456aee 002d:Ret KERNEL32.GetLastError() retval=00000006 ret=00456aee ... 002d:Call KERNEL32.OutputDebugStringA(007e54b0 "[WuUpdater] Firma no verificada para 'C:\users\focht\Temp\{02B22974-0252-4c1a-AC08-0346941DEA7A}\fxwebplayer.w2i'.\n") ret=0046a011 ... 002d:Call KERNEL32.CreateFileA(005faa40 "C:\users\focht\Temp\{02B22974-0252-4c1a-AC08-0346941DEA7A}\fxwebplayer\data/7zr.exe",c0000000,00000007,00000000,00000002,08000000,00000000) ret=0046a1fe 002d:Ret KERNEL32.CreateFileA() retval=000000e0 ret=0046a1fe ... 002d:Call KERNEL32.CreateFileA(005fa640 "C:\users\focht\Temp\{02B22974-0252-4c1a-AC08-0346941DEA7A}\fxwebplayer\data/dbghelp.dll",c0000000,00000007,00000000,00000002,08000000,00000000) ret=0046a1fe 002d:Ret KERNEL32.CreateFileA() retval=000000e0 ret=0046a1fe ... 002d:Call KERNEL32.CreateFileA(005fa640 "C:\users\focht\Temp\{02B22974-0252-4c1a-AC08-0346941DEA7A}\fxwebplayer\data/FXCaps.dll",c0000000,00000007,00000000,00000002,08000000,00000000) ret=0046a1fe 002d:Ret KERNEL32.CreateFileA() retval=000000e0 ret=0046a1fe ... 002d:Call KERNEL32.CreateFileA(005fa640 "C:\users\focht\Temp\{02B22974-0252-4c1a-AC08-0346941DEA7A}\fxwebplayer\data/Fxp.dll",c0000000,00000007,00000000,00000002,08000000,00000000) ret=0046a1fe 002d:Ret KERNEL32.CreateFileA() retval=000000e0 ret=0046a1fe ... 002d:Call KERNEL32.CreateFileA(005f0be8 "C:\users\focht\Temp\{02B22974-0252-4c1a-AC08-0346941DEA7A}\fxwebplayer\data/fxplanet.ocx",c0000000,00000007,00000000,00000002,08000000,00000000) ret=0046a1fe 002d:Ret KERNEL32.CreateFileA() retval=000000e0 ret=0046a1fe ... 002d:Call KERNEL32.CreateFileA(005f0b80 "C:\users\focht\Temp\{02B22974-0252-4c1a-AC08-0346941DEA7A}\fxwebplayer\data/FXWebPlayer.exe",c0000000,00000007,00000000,00000002,08000000,00000000) ret=0046a1fe 002d:Ret KERNEL32.CreateFileA() retval=000000e0 ret=0046a1fe ... 002d:Call KERNEL32.CreateFileA(005f0b80 "C:\users\focht\Temp\{02B22974-0252-4c1a-AC08-0346941DEA7A}\fxwebplayer\data/MFC71.dll",c0000000,00000007,00000000,00000002,08000000,00000000) ret=0046a1fe 002d:Ret KERNEL32.CreateFileA() retval=000000e0 ret=0046a1fe ... 002d:Call KERNEL32.CreateFileA(005f0b80 "C:\users\focht\Temp\{02B22974-0252-4c1a-AC08-0346941DEA7A}\fxwebplayer\data/mfc80.dll",c0000000,00000007,00000000,00000002,08000000,00000000) ret=0046a1fe 002d:Ret KERNEL32.CreateFileA() retval=000000e0 ret=0046a1fe ... 002d:Call KERNEL32.CreateFileA(005f0be8 "C:\users\focht\Temp\{02B22974-0252-4c1a-AC08-0346941DEA7A}\fxwebplayer\wu2_install.IT.cfg",c0000000,00000007,00000000,00000002,08000000,00000000) ret=0046a1fe 002d:Ret KERNEL32.CreateFileA() retval=000000e0 ret=0046a1fe ... 002d:Call KERNEL32.CreateFileA(005e8f68 "C:\users\focht\Temp\{02B22974-0252-4c1a-AC08-0346941DEA7A}\fxwebplayer.w2i",80000000,00000003,00000000,00000003,00000000,00000000) ret=0040247a 002d:Ret KERNEL32.CreateFileA() retval=000000ac ret=0040247a 002d:Call KERNEL32.CloseHandle(000000ac) ret=00402489 002d:Ret KERNEL32.CloseHandle() retval=00000001 ret=00402489 002d:Call KERNEL32.DeleteFileA(005e8f68 "C:\users\focht\Temp\{02B22974-0252-4c1a-AC08-0346941DEA7A}\fxwebplayer.w2i") ret=0046c61a 002d:Ret KERNEL32.DeleteFileA() retval=00000001 ret=0046c61a ... 002d:Call KERNEL32.lstrlenA(007e5c6c "Descarga de W2I completada con \xe9xito") ret=00468559 ... 002d:Call KERNEL32.lstrlenA(007e533c "ProcessInstallW2I (C:\users\focht\Temp\{02B22974-0252-4c1a-AC08-0346941DEA7A}\fxwebplayer -> C:\users\Public\Application Data\FXWebPlayer, FXWebPlayer)") ret=00468559 ... 002d:Call KERNEL32.lstrlenA(005f0209 "DEST") ret=00401811 ... 002d:Call KERNEL32.lstrlenA(005faac8 "C:\users\Public\Application Data\FXWebPlayer") ret=00403c59 ... 002d:Call KERNEL32.lstrlenA(007e5028 "W2I:Rename C:\users\Public\Application Data\FXWebPlayer\npfxplanet.dll -> C:\users\Public\Application Data\FXWebPlayer\_npfxplanet.dll") ret=00468559 ... 002d:Call shell32.SHFileOperationA(007e587c) ret=004117b9 ... 002d:Ret shell32.SHFileOperationA() retval=00000402 ret=004117b9 ... 002d:Call KERNEL32.lstrlenA(007e5030 "ERROR ProcessInstallW2I (RENAME)") ret=00468559 ... 002d:Call KERNEL32.lstrlenA(007e5028 "W2I:Move C:\users\focht\Temp\{02B22974-0252-4c1a-AC08-0346941DEA7A}\fxwebplayer\Data\*.* -> C:\users\Public\Application Data\FXWebPlayer") ret=00468559 ... 002d:Call KERNEL32.CreateDirectoryA(005ea418 "C:\users\Public\Application Data\FXWebPlayer",00000000) ret=00411398 002d:Ret KERNEL32.CreateDirectoryA() retval=00000001 ret=00411398 002d:Call shell32.SHFileOperationA(007e587c) ret=0041140d 002d:Call KERNEL32.MultiByteToWideChar(00000000,00000000,007e5914 "C:\users\focht\Temp\{02B22974-0252-4c1a-AC08-0346941DEA7A}\fxwebplayer\Data\*.*",00000051,00000000,00000000) ret=7e22ac06 ... 002d:Ret shell32.SHFileOperationA() retval=000004c7 ret=0041140d 002d:Call KERNEL32.GetLastError() ret=00456aee 002d:Ret KERNEL32.GetLastError() retval=00000012 ret=00456aee ... 002d:Call KERNEL32.lstrlenA(007e5030 "ERROR ProcessInstallW2I (MOVE)") ret=00468559 ... 002d:Call shell32.ShellExecuteExA(007e6488) ret=0040db54 ... 002d:Call KERNEL32.CreateProcessW(00000000,007e5070 L""C:\users\Public\Application Data\FXWebPlayer\FXWebPlayer.exe" /url connect",00000000,00000000,00000000,00000410,00000000,00156ee8 L"C:\users\Public\Application Data\FXWebPlayer",007e4b40,007e4b30) ret=7e223af6 002d:Ret KERNEL32.CreateProcessW() retval=00000000 ret=7e223af6 ... 002d:Call KERNEL32.FormatMessageW(00001000,00000000,00000002,00000000,007e3bc8,00000800,00000000) ret=7e2275f6 002d:Ret KERNEL32.FormatMessageW() retval=00000011 ret=7e2275f6 002d:Call user32.MessageBoxW(00000000,007e3bc8 L"File not found.\r\n",00000000,00000010) ret=7e22761e --- snip ---
The bootstrapper downloads and verifies package successfully. It unpacks the files to a temporary location:
--- snip --- $ ls -1sh users/focht/Temp/{02B22974-0252-4c1a-AC08-0346941DEA7A}/fxwebplayer/data/ total 8.8M 328K 7zr.exe 796K dbghelp.dll 32K FXCaps.dll 224K Fxp.dll 844K fxplanet.ocx 980K FXWebPlayer.exe 1.1M MFC71.dll 1.1M mfc80.dll 4.0K Microsoft.VC80.CRT.manifest 4.0K Microsoft.VC80.MFC.manifest 488K msvcp71.dll 536K msvcp80.dll 340K msvcr71.dll 612K msvcr80.dll 932K npfxplanet.dll 4.0K packages.wu2 748K w2i.exe 4.0K wu2_uninstall.cfg 4.0K WuDescriptor.upd --- snip ---
It then proceeds to execute some script/config items which seems to be a custom installer engine.
'wu2_install.EN.cfg':
--- snip --- //Renombra el plugin Rename { From "$DEST\npfxplanet.dll" To "$DEST_npfxplanet.dll" }
Rename { From "$DEST\fxplanet.ocx" To "$DEST_fxplanet.ocx" }
//Copia los archivos Move { Source "$SRC\Data*.*" Destination "$DEST" } ... --- snip ---
The culprit (as already seen in trace log) is 'FO_MOVE' operation of 'SHFileOperation':
--- snip --- Wine-dbg>c Stopped on breakpoint 1 at 0x7e469c6f SHFileOperationA [/home/focht/projects/wine/wine.repo/src/dlls/shell32/shlfileop.c:867] in shell32 867 { Wine-dbg>p *lpFileOp {hwnd=(nil), wFunc=0x1, pFrom="C:\users\focht\Temp{02B22974-0252-4c1a-AC08-0346941DEA7A}\fxwebplayer\Data*.*", pTo="C:\users\Public\Application Data\FXWebPlayer", fFlags=0x614, fAnyOperationsAborted=0x5adc0000, hNameMappings=0x7e, lpszProgressTitle=*** invalid address 0x5ac00000 ***}
... Wine-dbg>bt Backtrace: =>0 0x7e46b304 move_files(lpFileOp=0x7e57e2, flFrom=0x7e5784, flTo=0x7e576c) [/home/focht/projects/wine/wine.repo/src/dlls/shell32/shlfileop.c:1404] in shell32 (0x007e57b8) 1 0x7e469da7 SHFileOperationA+0x137(lpFileOp=<couldn't compute location>) [/home/focht/projects/wine/wine.repo/src/dlls/shell32/shlfileop.c:887] in shell32 (0x007e5828) 2 0x0041140d in fxwebplayer (+0x1140c) (0x007e5914)
Wine-dbg>p *flFrom {feFiles=0x1429c0, num_alloc=0x20, dwNumFiles=0x13, bAnyFromWildcard=0x1, bAnyDirectories=0, bAnyDontExist=0}
Wine-dbg>p *flFrom->feFiles {attributes=0x20, szDirectory="C:\users\focht\Temp{02B22974-0252-4c1a-AC08-0346941DEA7A}\fxwebplayer\Data", szFilename="7zr.exe", szFullPath="C:\users\focht\Temp{02B22974-0252-4c1a-AC08-0346941DEA7A}\fxwebplayer\Data\7zr.exe", bFromWildcard=0x1, bFromRelative=0, bExists=0}
Wine-dbg>p *flTo {feFiles=0x144750, num_alloc=0x20, dwNumFiles=0x1, bAnyFromWildcard=0, bAnyDirectories=0x1, bAnyDontExist=0}
Wine-dbg>p *flTo->feFiles {attributes=0x10, szDirectory="C:\users\Public\Application Data", szFilename="FXWebPlayer", szFullPath="C:\users\Public\Application Data\FXWebPlayer", bFromWildcard=0, bFromRelative=0, bExists=0x1}
Wine-dbg>n 1422 if (!(lpFileOp->fFlags & FOF_MULTIDESTFILES) && Wine-dbg>n 1424 flFrom->dwNumFiles > flTo->dwNumFiles) Wine-dbg>n 1423 !flFrom->bAnyDirectories && Wine-dbg>n 1426 return ERROR_CANCELLED;
--- snip ---
Source: https://source.winehq.org/git/wine.git/blob/637bcd5de91bb1265b58c41af660749c...
--- snip --- 1402 /* the FO_MOVE operation */ 1403 static int move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const FILE_LIST *flTo) 1404 { 1405 DWORD i; 1406 INT mismatched = 0; 1407 const FILE_ENTRY *entryToMove; 1408 const FILE_ENTRY *fileDest; 1409 1410 if (!flFrom->dwNumFiles) 1411 return ERROR_SUCCESS; 1412 1413 if (!flTo->dwNumFiles) 1414 return ERROR_FILE_NOT_FOUND; 1415 1416 if (!(lpFileOp->fFlags & FOF_MULTIDESTFILES) && 1417 flTo->dwNumFiles > 1 && flFrom->dwNumFiles > 1) 1418 { 1419 return ERROR_CANCELLED; 1420 } 1421 1422 if (!(lpFileOp->fFlags & FOF_MULTIDESTFILES) && 1423 !flFrom->bAnyDirectories && 1424 flFrom->dwNumFiles > flTo->dwNumFiles) 1425 { 1426 return ERROR_CANCELLED; 1427 } ... --- snip ---
The code was introduced with this huge commit: https://source.winehq.org/git/wine.git/commitdiff/1be970d48572d6f988eeedb6e3... ("shell32: Reimplement a factored SHFileOperation.") several years ago.
Interesting it went unnoticed all the time. A wildcard move operation is not that uncommon.
$ sha1sum FXWebPlayer.exe 7ac6feccd6fd4438cf3d773b4a792c9d31458778 FXWebPlayer.exe
$ du -sh FXWebPlayer.exe 744K FXWebPlayer.exe
$ wine --version wine-1.7.51-102-ga7e294c
Regards
https://bugs.winehq.org/show_bug.cgi?id=39269
super_man@post.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |super_man@post.com
--- Comment #2 from super_man@post.com --- Still valid 1.9.3 and staging 1.9.3
https://bugs.winehq.org/show_bug.cgi?id=39269
Lorenzo Ferrillo lorenzofer@live.it changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |lorenzofer@live.it
--- Comment #3 from Lorenzo Ferrillo lorenzofer@live.it --- Created attachment 66867 --> https://bugs.winehq.org/attachment.cgi?id=66867 SHFileOperation FO_MOVE allow wildchar origin (wine 5.6)
As this bug is still present into wine 5.6 and the staging branch, I made this.
IT seems to work fully (at least for this use case) but I don't know if it can break something else.
This Allow FXWebPlayer executables to be installed.
Note that Fx Store don't work fully on non staging wine. However once installed the store (and the linked FxWebPlayer) the patch is not needed anymore, and wine-staging can be used.
This do not apply cleanly on wine-staging. When wine staging for 5.6 is out I will remake the patch for staging.
https://bugs.winehq.org/show_bug.cgi?id=39269
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://downloadnavy.fxinter |https://web.archive.org/web |active.com/wu_updates_priva |/20200316192423/https://dow |te/FXWebPlayer.exe |nloadnavy.fxinteractive.com | |/wu_updates_private/FXWebPl | |ayer.exe Keywords| |patch
--- Comment #4 from Anastasius Focht focht@gmx.net --- Hello Lorenzo,
thanks for the patch. Yes, a refined version should go to Wine-Staging so this bug becomes "staged".
I've added a stable link to Internet Archive:
https://web.archive.org/web/20200316192423/https://downloadnavy.fxinteractiv...
$ sha1sum FXWebPlayer.exe 7ac6feccd6fd4438cf3d773b4a792c9d31458778 FXWebPlayer.exe
$ du -sh FXWebPlayer.exe 744K FXWebPlayer.exe
$ wine --version wine-5.6
Regards
https://bugs.winehq.org/show_bug.cgi?id=39269
--- Comment #5 from Lorenzo Ferrillo lorenzofer@live.it --- Created attachment 66869 --> https://bugs.winehq.org/attachment.cgi?id=66869 SHFileOperation FO_MOVE allow wildchar origin (wine staging 5.6)
The patch above but for wine staging 5.6
https://bugs.winehq.org/show_bug.cgi?id=39269
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |z.figura12@gmail.com
--- Comment #6 from Zebediah Figura z.figura12@gmail.com --- Can this patch be upstreamed directly?
https://bugs.winehq.org/show_bug.cgi?id=39269
--- Comment #7 from Lorenzo Ferrillo lorenzofer@live.it --- I don't know, I'm quite positive that it will not break anything, however I can't say without proper tests.
The first patch is directly applyable against the normal wine. Do you think that (after making a better commit message) it may be suitable for submission?
https://bugs.winehq.org/show_bug.cgi?id=39269
--- Comment #8 from Zebediah Figura z.figura12@gmail.com --- (In reply to Lorenzo Ferrillo from comment #7)
I don't know, I'm quite positive that it will not break anything, however I can't say without proper tests.
The first patch is directly applyable against the normal wine. Do you think that (after making a better commit message) it may be suitable for submission?
After adding tests, probably, yes.
https://bugs.winehq.org/show_bug.cgi?id=39269
--- Comment #9 from Lorenzo Ferrillo lorenzofer@live.it --- Ok, finding a way to trigger this use case was more challenging that I thought.
The reason is that the current code already handle a case (that is probably the most common case) where if I use a source wildchar and in the source folder there is a directory.
This is the case tested into the testcase so this is why this was never deetected before.
Basically if the folder is
.\file1 .\file2 .\nested\file3
the move operation using ".\*.*\0" as source work as intended
If the folder is .\file1
the move operation using ".\*.*\0" as source work as intended
If the folder is: .\file1 .\file2
then the move operation using ".\*.*\0" do not work as intended and fail
I will now submit this to the testbot.
https://bugs.winehq.org/show_bug.cgi?id=39269
Lorenzo Ferrillo lorenzofer@live.it changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #66867|0 |1 is obsolete| |
--- Comment #10 from Lorenzo Ferrillo lorenzofer@live.it --- Created attachment 66878 --> https://bugs.winehq.org/attachment.cgi?id=66878 patchset + test for wine 5.6
I post the initial version of the test here.
Zebediah to you thinki is bette rto post the test and the patch in spearate patches?
Do you think that its' better to add the new test in test_moves function instead fo adding my own function at the bottom? (I did this as the test_moves is huge)
https://bugs.winehq.org/show_bug.cgi?id=39269
--- Comment #11 from Zebediah Figura z.figura12@gmail.com --- (In reply to Lorenzo Ferrillo from comment #10)
Created attachment 66878 [details] patchset + test for wine 5.6
I post the initial version of the test here.
Zebediah to you thinki is bette rto post the test and the patch in spearate patches?
Generally the best situation is to put the test in a separate patch, and put it first, with the appropriate todo_wines, so you can see exactly what was fixed. If that's not possible, I don't think it particularly matters whether the test is in the same patch or a separate patch after the fix.
Do you think that its' better to add the new test in test_moves function instead fo adding my own function at the bottom? (I did this as the test_moves is huge)
I think either way is fine, probably. I would recommend getting rid of all of those helper functions, though. init_shfo_tests() may be useful since it's called multiple times, but here I think it makes the code harder to read.
https://bugs.winehq.org/show_bug.cgi?id=39269
--- Comment #12 from Lorenzo Ferrillo lorenzofer@live.it --- Created attachment 66879 --> https://bugs.winehq.org/attachment.cgi?id=66879 v2 Tests
Hi again Zebediah. Thank you for your suggestion. Do you think that this is better readable?
Also do yuu think that this may be enough for tests? Most of the other FO_MOVE usecases are already covered, even some other wildchar usage
I'm now trying to understand the patch submission procedures
https://bugs.winehq.org/show_bug.cgi?id=39269
Lorenzo Ferrillo lorenzofer@live.it changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #66879|0 |1 is obsolete| |
--- Comment #13 from Lorenzo Ferrillo lorenzofer@live.it --- Created attachment 66880 --> https://bugs.winehq.org/attachment.cgi?id=66880 Actual v2 patch
Sorry uploaded the old file
https://bugs.winehq.org/show_bug.cgi?id=39269
Lorenzo Ferrillo lorenzofer@live.it changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #66880|0 |1 is obsolete| |
--- Comment #14 from Lorenzo Ferrillo lorenzofer@live.it --- Created attachment 66881 --> https://bugs.winehq.org/attachment.cgi?id=66881 Actual v2 patch
this time really
https://bugs.winehq.org/show_bug.cgi?id=39269
--- Comment #15 from Zebediah Figura z.figura12@gmail.com --- Yes, I think that looks good enough probably.
If you have any questions about submission, please don't hesitate to ask.
https://bugs.winehq.org/show_bug.cgi?id=39269
--- Comment #16 from Lorenzo Ferrillo lorenzofer@live.it --- Sent: https://source.winehq.org/patches/data/183260 conformance tests https://source.winehq.org/patches/data/183261 patch