Message ID | 20201012114816.43546-1-thuth@redhat.com |
---|---|
State | New |
Headers | show |
Series | tests/qtest/libqtest: Fix detection of architecture for binaries without path | expand |
diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c index 58f58e1ece..7cbcc77fdd 100644 --- a/tests/qtest/libqtest.c +++ b/tests/qtest/libqtest.c @@ -830,9 +830,14 @@ char *qtest_hmp(QTestState *s, const char *fmt, ...) const char *qtest_get_arch(void) { const char *qemu = qtest_qemu_binary(); - const char *end = strrchr(qemu, '/'); + const char *end = strrchr(qemu, '-'); - return end + strlen("/qemu-system-"); + if (!end) { + fprintf(stderr, "Can't determine architecture from binary name.\n"); + abort(); + } + + return end + 1; } bool qtest_get_irq(QTestState *s, int num)
The qtests can be run directly by specifying the QEMU binary with the QTEST_QEMU_BINARY environment variable, for example: $ QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 tests/qtest/test-hmp However, if you specify a binary without a path, for example with QTEST_QEMU_BINARY=qemu-system-x86_64 if the QEMU binary is in your $PATH, then the test currently simply crashes. Let's try a little bit smarter here by looking for the final '-' instead of the slash. Signed-off-by: Thomas Huth <thuth@redhat.com> --- tests/qtest/libqtest.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)