On 02/03/2022 18.49, Daniel P. Berrangé wrote:
> When debugging failing qtests it is useful to be able to turn on trace
> output to stderr. The QTEST_TRACE env variable contents get injected
> as a '-trace <str>' command line arg
>
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
> tests/qtest/libqtest.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c
> index 41f4da4e54..a85f8a6d05 100644
> --- a/tests/qtest/libqtest.c
> +++ b/tests/qtest/libqtest.c
> @@ -260,6 +260,9 @@ QTestState *qtest_init_without_qmp_handshake(const char *extra_args)
> gchar *qmp_socket_path;
> gchar *command;
> const char *qemu_binary = qtest_qemu_binary();
> + const char *trace = g_getenv("QTEST_TRACE");
> + g_autofree char *tracearg = trace ?
> + g_strdup_printf("-trace %s ", trace) : g_strdup("");
>
> s = g_new(QTestState, 1);
>
> @@ -282,14 +285,15 @@ QTestState *qtest_init_without_qmp_handshake(const char *extra_args)
>
> qtest_add_abrt_handler(kill_qemu_hook_func, s);
>
> - command = g_strdup_printf("exec %s "
> + command = g_strdup_printf("exec %s %s"
> "-qtest unix:%s "
> "-qtest-log %s "
> "-chardev socket,path=%s,id=char0 "
> "-mon chardev=char0,mode=control "
> "-display none "
> "%s"
> - " -accel qtest", qemu_binary, socket_path,
> + " -accel qtest",
> + qemu_binary, tracearg, socket_path,
> getenv("QTEST_LOG") ? "/dev/fd/2" : "/dev/null",
> qmp_socket_path,
> extra_args ?: "");
Reviewed-by: Thomas Huth <thuth@redhat.com>