We are interested by the coredump of the child, not the qtest parent. If the child generated a coredump, simply call exit(EXIT_FAILURE) in the parent to avoid overwriting the child coredump.
Fixes: 71a268a5fd ("tests/libqtest: Improve kill_qemu()") Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> --- tests/qtest/libqtest.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c index 49075b55a1..bd85d01145 100644 --- a/tests/qtest/libqtest.c +++ b/tests/qtest/libqtest.c @@ -173,7 +173,12 @@ static void kill_qemu(QTestState *s) fprintf(stderr, "%s:%d: kill_qemu() detected QEMU death " "from signal %d (%s)%s\n", __FILE__, __LINE__, sig, signame, dump); - abort(); + if (WCOREDUMP(wstatus)) { + /* Preserve child coredump */ + exit(1); + } else { + abort(); + } } } -- 2.21.3