Any non-zero exit code is grounds for ignoring the 'test --list' output. This also causes get_subtests() to return the actual process exit code rather than a generic internal error when it fails to parse the test list.
Signed-off-by: Francois Gouget fgouget@codeweavers.com ---- The better diagnostic error code may help further diagnosing bug 48061. * WineTest: get_subtests() fails randomly https://bugs.winehq.org/show_bug.cgi?id=48061 --- programs/winetest/main.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/programs/winetest/main.c b/programs/winetest/main.c index e203b781dc8..2e5fdc6ab8c 100644 --- a/programs/winetest/main.c +++ b/programs/winetest/main.c @@ -724,9 +724,12 @@ get_subtests (const char *tempdir, struct wine_test *test, LPSTR res_name) } heap_free (cmd);
- if (status == -2) + if (status) { - report (R_ERROR, "Cannot run %s error %u", test->exename, err); + if (status == -2) + report (R_ERROR, "Cannot run %s error %u", test->exename, err); + else + err = status; CloseHandle( subfile ); goto quit; }