Based on a patch by Mark Jansen.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This is essentially redundant. We should have tests for all behaviours of
CommandLineToArgv() above; the purpose of test_argify() is to test how
ShellExecute() et al. parses its parameters, and to show that this is
different from CommandLineToArgv().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Even if we have a results file after a failed ShellExecuteEx() call, it
may not correspond to the last call and should thus be ignored.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
When Internet Explorer 6 is installer, Windows XP detects non-standard
verbs just fine for files but not for URLs.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This way it's integrated with the rest of the matching tests and skipped
on plaforms where file URLs don't work right (old Windows XP versions).
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Also tweak the class creation functions and add create_test_class() so
one can create a class without associating it with an extension.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Also improve the description of this race condition.
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
ShellExecute() sometimes converts a short path to a long one so always accept the long form.
Windows XP SP1 often converts them to short paths instead but consider this behavior to be broken.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
The child process does not inherit environment variables when the
calling process does not have elevated privileges and specifies
SEE_MASK_NOZONECHECKS.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
On Windows XP SP1 a ShellExecute() call that is supposed to fail
succeeds instead. This means the child process is started but
ShellExecute() returns without waiting for it, resulting in a race
condition on the child's results file. So use our shell_execute_ex()
wrapper instead as it always waits for the child process.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
There are three possible sets of results: Windows <= 2000, XP SP1 and >= XP SP2.
Use the first two tests to figure out which results to expect.
Only accept the >= XP SP2 results in Wine.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Windows 10 does not call WaitForInputIdle() if the DDE server is a
console application. So force the call by adding
SEE_MASK_WAITFORINPUTIDLE. Also Windows calls WaitForInputIdle() with a
60s timeout and while we should not hit it, trace and cap it to 5s
anyway.
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This also causes the ShellExecute() and association descriptions to be
printed with each failing test. This makes the messages more readable in
TestBot's abbreviated logs, at the cost of a lot more redundancy.
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Should something go wrong a failed ok() call will leave a clearer trace
in the log than an assert.
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Return the number of failures through both the child result file and the process exit code.
Also rename the child result file section to 'Child' since it no longer only contains 'Arguments'.
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This also groups the helpers in a more logical fashion.
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This ensures all the failed call parameters will be traced.
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
okShell() serves to encapsulate handling of shell_call and also provides a means for further extensions.
Remove the shell_call static initialization to not hide potential
use-before-assignment compiler warnings.
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This makes it easier to match their internal test failures with the site of the real test.
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
shell_execute_ex() adds some flags for its own internal needs. The
traces should reflect that.
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
ShellExecute() is more likely to have returned an unexpected error code
than it is to have succeeded.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>