[5/6] shell32/tests: Test environment variable inheritance with ShellExecute().

Francois Gouget fgouget at codeweavers.com
Thu Jan 28 18:42:46 CST 2016


On Thu, 28 Jan 2016, Marvin wrote:
[...]
> === wvistau64 (32 bit shlexec) ===
> shlexec.c:1666: Test failed: WaitForSingleObject returned 258
> shlexec.c:1695: Test failed: argvA3 expected 'QuotedLowerL', got 'Open'
> shlexec.c:1703: Test failed: argvA4 expected 'C:\Users\winetest\AppData\Local\Temp\wtD4FA.tmp\test file.shlexec', got 'C:\Users\winetest\AppData\Local\Temp\wtD4FA.tmp\test file.noassoc.shlexec'
> shlexec.c:1695: Test failed: argvA3 expected 'QuotedUpperL', got 'QuotedLowerL'
> shlexec.c:1666: Test failed: ShlexecVar expected 'Present', but key not found or empty
> shlexec.c:1695: Test failed: argvA3 expected 'Open', but key not found or empty
> shlexec.c:1703: Test failed: argvA4 expected 'C:\Users\winetest\AppData\Local\Temp\wtD4FA.tmp\masked file.shlexec', but key not found or empty

The usual occasional timeout-induced failures for this VM.


> === w1064 (32 bit shlexec) ===
> shlexec.c:2426: Test failed: failed: rc=29 err=2
> shlexec.c:2424: Test failed: ShlexecVar expected 'Present', but key not found or empty
> shlexec.c:2426: Test failed: failed: rc=29 err=32
> shlexec.c:2426: Test failed: failed: rc=29 err=2
> shlexec.c:2424: Test failed: ShlexecVar expected 'Present', but key not found or empty
> shlexec.c:2426: Test failed: failed: rc=29 err=32
> 
> === w1064 (64 bit shlexec) ===
> shlexec.c:2426: Test failed: failed: rc=29 err=2
> shlexec.c:2426: Test failed: failed: rc=29 err=2
> shlexec.c:2424: Test failed: ShlexecVar expected 'Present', but key not found or empty
> shlexec.c:2426: Test failed: failed: rc=29 err=32
> shlexec.c:2438: Test failed: ddeExec expected '[ifexec("C:\Users\winetest\AppData\Local\Temp\wt9FCE.tmp\test file.sde")]', got '[open("C:\Users\winetest\AppData\Local\Temp\wt9FCE.tmp\test file.sde")]'
> shlexec.c:2426: Test failed: failed: rc=29 err=2
> shlexec.c:2426: Test failed: failed: rc=29 err=2

So the ShlexecVar lines are new but in fact it's caused by the same DDE 
failures we have had all along on Windows 10.

As explained in the email below the issue appears to be that hooking 
WaitForInputIdle() has not effect on Windows 10. So ShellExecute() does 
not wait for the child process to do the DDE exchange and returns too 
early. This results in a race between the parent and child process(es), 
both for the DDE exchange, and when checking the content of the child 
result file.

https://www.winehq.org/pipermail/wine-devel/2016-January/111496.html


-- 
Francois Gouget <fgouget at codeweavers.com>




More information about the wine-devel mailing list