[PATCH 1/3] msvcrt/tests: Don't pass path containing spaces to _spawnvp (try3)
Piotr Caban
piotr.caban at gmail.com
Tue Feb 11 06:37:20 CST 2014
Hi,
s
I've seen that this patch was marked as pending. I'm not sure what
should I change in it. The argv[0] argument is not used in child process
so maybe it will be clearer if I put some dummy value there. I can also
change the tests to not use _spawnvp.
There's following comment near _spawnvp implementation:
Like on Windows, this function does not handle arguments with spaces or
double-quotes.
Here are some results that shows what happens on windows when the tests
are executed without this patch. The behavior on wine is similar.
E:\>msvcrt_crosstest.exe file
file: 3 tests executed (0 marked as todo, 0 failures), 0 skipped.
file: 1 tests executed (0 marked as todo, 0 failures), 0 skipped.
file: 5 tests executed (0 marked as todo, 0 failures), 0 skipped.
file: 5 tests executed (0 marked as todo, 0 failures), 0 skipped.
file: 791 tests executed (0 marked as todo, 0 failures), 0 skipped.
E:\>"a a\msvcrt_crosstest.exe" file
Fatal: test 'a\msvcrt_crosstest.exe' does not exist.
file.c:1417: Test failed: bad position 0 expecting 8
file.c:1419: Test failed: Couldn't read back the data
Fatal: test 'a\msvcrt_crosstest.exe' does not exist.
Fatal: test 'a\msvcrt_crosstest.exe' does not exist.
file.c:1987: Test failed: i 0, got 0
file.c:1990: Test failed: expected to read 'Hello world', got '⌂'
file.c:1987: Test failed: i 1, got 0
file.c:1990: Test failed: expected to read 'Hello world', got '⌂'
file.c:1987: Test failed: i 2, got 0
file.c:1990: Test failed: expected to read 'Hello world', got '⌂'
Fatal: test 'a\msvcrt_crosstest.exe' does not exist.
file.c:2024: Test failed: fread() returned 0: ferror=0
file.c:2027: Test failed: got '⌂' expected 'Hello worldHello worldHello
world'
file: 791 tests executed (0 marked as todo, 10 failures), 0 skipped.
In the failing case
argv[0] = "a"
argv[1] = "a\msvcrt_crosstest.exe"
argv[2] = "file"
Thanks,
Piotr
More information about the wine-devel
mailing list