In case of a failure it is necessary to show the path that was passed to ShellExecute(). That means the paths must not be randomized so as not to prevent the TestBot from detecting new failures. Note that because of the registry modifications one cannot run two instances of the test concurrently anyway.
Signed-off-by: Francois Gouget fgouget@codeweavers.com ---
As a side effect this drops the ".tmp" extension but I don't think that makes a difference.
dlls/shell32/tests/shlexec.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/dlls/shell32/tests/shlexec.c b/dlls/shell32/tests/shlexec.c index eec1a63d383..f6f384bbe00 100644 --- a/dlls/shell32/tests/shlexec.c +++ b/dlls/shell32/tests/shlexec.c @@ -2693,7 +2693,13 @@ static void init_test(void) strcpy(filename, "c:\"); else GetTempPathA(sizeof(filename), filename); - GetTempFileNameA(filename, "wt", 0, tmpdir); + + /* In case of a failure it is necessary to show the path that was passed to + * ShellExecute(). That means the paths must not be randomized so as not to + * prevent the TestBot from detecting new failures. + */ + strcpy(tmpdir, filename); + strcat(tmpdir, "\wtShlexecDir"); GetLongPathNameA(tmpdir, tmpdir, sizeof(tmpdir)); DeleteFileA( tmpdir ); rc = CreateDirectoryA( tmpdir, NULL ); @@ -2701,8 +2707,8 @@ static void init_test(void) /* Set %TMPDIR% for the tests */ SetEnvironmentVariableA("TMPDIR", tmpdir);
- rc = GetTempFileNameA(tmpdir, "wt", 0, child_file); - ok(rc != 0, "got %d\n", rc); + strcpy(child_file, tmpdir); + strcat(child_file, "\wtShlexecFile"); init_event(child_file);
/* Set up the test files */
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=67527
Your paranoid android.
=== wxppro (32 bit report) ===
shell32: shlexec.c:2129: Test failed: ShellExecuteEx(mask="0x808040", file="C:\DOCUME~1\winetest\LOCALS~1\Temp\wtShlexecDir\test_shortcut_shlexec.lnk") argvA4 expected 'C:\Documents and Settings\winetest\Local Settings\Temp\wtShlexecDir\test file.shlexec', got 'C:\DOCUME~1\winetest\LOCALS~1\Temp\wtShlexecDir\test file.shlexec' shlexec.c:2137: Test failed: ShellExecuteEx(mask="0x808240", file="%TMPDIR%\test_shortcut_shlexec.lnk") argvA4 expected 'C:\Documents and Settings\winetest\Local Settings\Temp\wtShlexecDir\test file.shlexec', got 'C:\DOCUME~1\winetest\LOCALS~1\Temp\wtShlexecDir\test file.shlexec'
=== w2008s64 (32 bit report) ===
shell32: shlexec.c:2129: Test failed: ShellExecuteEx(mask="0x808040", file="C:\Users\ADMINI~1\AppData\Local\Temp\wtShlexecDir\test_shortcut_shlexec.lnk") argvA4 expected 'C:\Users\Administrator\AppData\Local\Temp\wtShlexecDir\test file.shlexec', got 'C:\Users\ADMINI~1\AppData\Local\Temp\wtShlexecDir\test file.shlexec' shlexec.c:2137: Test failed: ShellExecuteEx(mask="0x808240", file="%TMPDIR%\test_shortcut_shlexec.lnk") argvA4 expected 'C:\Users\Administrator\AppData\Local\Temp\wtShlexecDir\test file.shlexec', got 'C:\Users\ADMINI~1\AppData\Local\Temp\wtShlexecDir\test file.shlexec' shlexec: Timeout
=== w8 (testbot log) ===
The task timed out
=== w8adm (32 bit report) ===
shell32: shlexec.c:2843: Test failed: ShellExecuteEx(mask="0x808440", file="test2.exe", params="shlexec "C:\Users\winetest\AppData\Local\Temp\wtShlexecDir\wtShlexecFile" Exec", dir="C:\Users\winetest\AppData\Local\Temp\wtShlexecDir") returned 2 shlexec.c:2845: Test failed: ShellExecuteEx(mask="0x808440", file="test2.exe", params="shlexec "C:\Users\winetest\AppData\Local\Temp\wtShlexecDir\wtShlexecFile" Exec", dir="C:\Users\winetest\AppData\Local\Temp\wtShlexecDir") argvA3 expected 'Exec', but key not found or empty shlexec.c:2846: Test failed: ShellExecuteEx(mask="0x808440", file="test2.exe", params="shlexec "C:\Users\winetest\AppData\Local\Temp\wtShlexecDir\wtShlexecFile" Exec", dir="C:\Users\winetest\AppData\Local\Temp\wtShlexecDir") longPath expected 'C:\Users\winetest\AppData\Local\Temp\wtShlexecDir\test2.exe', but key not found or empty shlexec.c:2855: Test failed: ShellExecuteEx(mask="0x808640", file="test2.exe", params="shlexec "C:\Users\winetest\AppData\Local\Temp\wtShlexecDir\wtShlexecFile" Exec", dir="%TMPDIR%") returned 2 shlexec.c:2857: Test failed: ShellExecuteEx(mask="0x808640", file="test2.exe", params="shlexec "C:\Users\winetest\AppData\Local\Temp\wtShlexecDir\wtShlexecFile" Exec", dir="%TMPDIR%") argvA3 expected 'Exec', but key not found or empty shlexec.c:2858: Test failed: ShellExecuteEx(mask="0x808640", file="test2.exe", params="shlexec "C:\Users\winetest\AppData\Local\Temp\wtShlexecDir\wtShlexecFile" Exec", dir="%TMPDIR%") longPath expected 'C:\Users\winetest\AppData\Local\Temp\wtShlexecDir\test2.exe', but key not found or empty
=== w864 (testbot log) ===
The task timed out
=== w1064v1507 (testbot log) ===
The task timed out
=== w1064v1809 (32 bit report) ===
shell32: shlexec: Timeout
=== w1064v1809_2scr (32 bit report) ===
shell32: shlexec: Timeout
=== w1064v1809_ar (32 bit report) ===
shell32: shlexec.c:1586: Test failed: ShellExecuteEx(mask="0x8240", verb="Params9Etc", file="C:\Users\winetest\AppData\Local\Temp\wtShlexecDir\test file.shlexec", params="p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 and beyond!") WaitForSingleObject(hProcess) returned 258 shlexec.c:1586: Test failed: ShellExecuteEx(mask="0x8240", verb="Params9Etc", file="C:\Users\winetest\AppData\Local\Temp\wtShlexecDir\test file.shlexec", params="p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 and beyond!") child returned 259
=== w1064v1809_ar (testbot log) ===
The task timed out
=== w1064v1809_he (32 bit report) ===
shell32: shlexec.c:1110: Test failed: ShellExecute(verb="", file=""C:\Users\winetest\AppData\Local\Temp\wtShlexecDir\drawback_file.noassoc foo.shlexec"") WaitForSingleObject returned 258 shlexec.c:1116: Test failed: ShellExecute(verb="", file=""C:\Users\winetest\AppData\Local\Temp\wtShlexecDir\drawback_file.noassoc" foo.shlexec") ShlexecVar expected 'Present', but key not found or empty
=== w1064v1809_he (testbot log) ===
The task timed out
=== w1064v1809_ja (32 bit report) ===
shell32: shlexec.c:1586: Test failed: ShellExecuteEx(mask="0x8240", verb="Params9Etc", file="C:\Users\winetest\AppData\Local\Temp\wtShlexecDir\test file.shlexec", params="p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 and beyond!") WaitForSingleObject(hProcess) returned 258 shlexec.c:1586: Test failed: ShellExecuteEx(mask="0x8240", verb="Params9Etc", file="C:\Users\winetest\AppData\Local\Temp\wtShlexecDir\test file.shlexec", params="p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 and beyond!") child returned 259 shlexec.c:1894: Test failed: ShellExecute(file="shlproto://foo/bar") WaitForSingleObject returned 258 shlexec.c:1901: Test failed: ShellExecute(file="shlpaverb://foo/bar") WaitForSingleObject returned 258 shlexec.c:1919: Test failed: ShellExecute(verb="averb", file="shlproto://foo/bar") argvA3 expected 'AVerb', but key not found or empty shlexec.c:1920: Test failed: ShellExecute(verb="averb", file="shlproto://foo/bar") argvA4 expected 'shlproto://foo/bar', but key not found or empty
=== w1064v1809_ja (testbot log) ===
The task timed out
=== w1064v1809_zh_CN (32 bit report) ===
shell32: shlexec.c:1127: Test failed: ShellExecute(file="C:\Users\winetest\AppData\Local\Temp\wtShlexecDir\drawback_nonexist.noassoc foo.shlexec") WaitForSingleObject returned 258 shlexec: Timeout
=== w1064v1809_zh_CN (testbot log) ===
The task timed out
=== w2008s64 (64 bit report) ===
shell32: shlexec.c:2129: Test failed: ShellExecuteEx(mask="0x808040", file="C:\Users\ADMINI~1\AppData\Local\Temp\wtShlexecDir\test_shortcut_shlexec.lnk") argvA4 expected 'C:\Users\Administrator\AppData\Local\Temp\wtShlexecDir\test file.shlexec', got 'C:\Users\ADMINI~1\AppData\Local\Temp\wtShlexecDir\test file.shlexec' shlexec.c:2137: Test failed: ShellExecuteEx(mask="0x808240", file="%TMPDIR%\test_shortcut_shlexec.lnk") argvA4 expected 'C:\Users\Administrator\AppData\Local\Temp\wtShlexecDir\test file.shlexec', got 'C:\Users\ADMINI~1\AppData\Local\Temp\wtShlexecDir\test file.shlexec' shlexec: Timeout
=== w864 (testbot log) ===
The task timed out
=== w1064v1507 (64 bit report) ===
shell32: shlexec: Timeout
=== w1064v1809 (64 bit report) ===
shell32: shlexec: Timeout