Make QEMU stderr conditional on the QTEST_LOG variable. For the /x86/cpuid/parsing-plus-minus test, which traps the stderr, to continue working set the QTEST_LOG variable from inside the subprocess.
Signed-off-by: Fabiano Rosas <faro...@suse.de> --- tests/qtest/libqtest.c | 6 ++++-- tests/qtest/test-x86-cpuid-compat.c | 6 ++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c index 1326e34291..347664cea6 100644 --- a/tests/qtest/libqtest.c +++ b/tests/qtest/libqtest.c @@ -476,11 +476,13 @@ static QTestState *qtest_init_internal(const char *qemu_bin, "-display none " "-audio none " "%s" - " -accel qtest", + " -accel qtest" + " 2> %s", socket_path, getenv("QTEST_LOG") ? DEV_STDERR : DEV_NULL, qmp_socket_path, - extra_args ?: ""); + extra_args ?: "", + getenv("QTEST_LOG") ? DEV_STDERR : DEV_NULL); qtest_client_set_rx_handler(s, qtest_client_socket_recv_line); qtest_client_set_tx_handler(s, qtest_client_socket_send); diff --git a/tests/qtest/test-x86-cpuid-compat.c b/tests/qtest/test-x86-cpuid-compat.c index b9e7e5ef7b..641d1f8740 100644 --- a/tests/qtest/test-x86-cpuid-compat.c +++ b/tests/qtest/test-x86-cpuid-compat.c @@ -204,6 +204,9 @@ static void test_plus_minus_subprocess(void) return; } + const char *log = g_getenv("QTEST_LOG"); + g_setenv("QTEST_LOG", "1", true); + /* Rules: * 1)"-foo" overrides "+foo" * 2) "[+-]foo" overrides "foo=..." @@ -227,6 +230,9 @@ static void test_plus_minus_subprocess(void) g_assert_true(qom_get_bool(path, "sse4-2")); g_assert_true(qom_get_bool(path, "sse4.2")); + if (log) { + g_setenv("QTEST_LOG", log, true); + } qtest_end(); g_free(path); } -- 2.35.3