diff options
author | Thomas Huth <thuth@redhat.com> | 2017-08-28 12:25:45 +0200 |
---|---|---|
committer | Thomas Huth <thuth@redhat.com> | 2017-09-15 09:05:18 +0200 |
commit | db221e66d8117f810c8046ce42c156580e4292aa (patch) | |
tree | 0c536c967bcd96722e8a5b217c7bd21ff48a4340 /tests/libqtest.c | |
parent | 33ea6cf712c2e98bb4cb266034e59958027e4b00 (diff) |
tests/libqtest: Use a proper error message if QTEST_QEMU_BINARY is missing
The user can currently still cause an abort() if running certain tests
(like the prom-env-test) without setting the QTEST_QEMU_BINARY first.
A similar problem has been fixed with commit 7c933ad61b8f3f51337
already, but forgot to also take care of the qtest_get_arch() function,
so let's introduce a proper wrapper around getenv("QTEST_QEMU_BINARY")
that can be used in both locations now.
Buglink: https://bugs.launchpad.net/qemu/+bug/1713434
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: John Snow <jsnow@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Diffstat (limited to 'tests/libqtest.c')
-rw-r--r-- | tests/libqtest.c | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/tests/libqtest.c b/tests/libqtest.c index 0c12b38906..3daa0e3917 100644 --- a/tests/libqtest.c +++ b/tests/libqtest.c @@ -150,6 +150,19 @@ void qtest_add_abrt_handler(GHookFunc fn, const void *data) g_hook_prepend(&abrt_hooks, hook); } +static const char *qtest_qemu_binary(void) +{ + const char *qemu_bin; + + qemu_bin = getenv("QTEST_QEMU_BINARY"); + if (!qemu_bin) { + fprintf(stderr, "Environment variable QTEST_QEMU_BINARY required\n"); + exit(1); + } + + return qemu_bin; +} + QTestState *qtest_init_without_qmp_handshake(const char *extra_args) { QTestState *s; @@ -157,13 +170,7 @@ QTestState *qtest_init_without_qmp_handshake(const char *extra_args) gchar *socket_path; gchar *qmp_socket_path; gchar *command; - const char *qemu_binary; - - qemu_binary = getenv("QTEST_QEMU_BINARY"); - if (!qemu_binary) { - fprintf(stderr, "Environment variable QTEST_QEMU_BINARY required\n"); - exit(1); - } + const char *qemu_binary = qtest_qemu_binary(); s = g_malloc(sizeof(*s)); @@ -624,8 +631,7 @@ char *qtest_hmp(QTestState *s, const char *fmt, ...) const char *qtest_get_arch(void) { - const char *qemu = getenv("QTEST_QEMU_BINARY"); - g_assert(qemu != NULL); + const char *qemu = qtest_qemu_binary(); const char *end = strrchr(qemu, '/'); return end + strlen("/qemu-system-"); |